Speciaal teken vervangen

Status
Niet open voor verdere reacties.
=> Gebruiker komt binnen: Murdoch
=> Gebruiker komt binnen: "abcd"

Code:
Murdoch
"abcd"
 
Bij mij werkt het nog steeds prima. Ik heb een bestandje aangemaakt met de volgende inhoud:
Murdock
Jan
"henk"
Piet
kees

Dit is m'n test functie:
Code:
Sub vw_User()
    Dim pstrFilename As String
    Dim AV_NAME As String
    Dim userslist As String

    pstrFilename = "C:\users.list"
    AV_NAME = "henk"

    Open pstrFilename For Input As #1
    Do Until EOF(1)
        Input #1, Data
        If Not Data = "" Then
            userslist = userslist + Data + vbCrLf
        End If
    Loop
    Close #1

    Debug.Print "Resultaat voor replace: " & vbCrLf & userslist
    userslist = Replace(userslist, AV_NAME & vbCrLf, "")
    Debug.Print "Resultaat na Replace: " & vbCrLf & userslist
End Sub


Dit is het resultaat:

Resultaat voor replace:
Murdock
Jan
henk
Piet
kees

Resultaat na Replace:
Murdock
Jan
Piet
kees
 
Laatst bewerkt:
Je resultaat voor replace hoort dit te zijn:

Murdock
Jan
"henk"
Piet
kees

Die "" rond henk ben je vergeten, anders werkt het uiteraard perfect.
 
Ok, je herkent een inkomende gebruiker dus aan " tekens om de naam?
Dan zou ik die daar niet voor gebruiken omdat die tekens door VB anders worden behandeld in een string.
Gebruik dan bijvoorbeeld een sterretje (*) voor de gebruikersnaam:

Murdock
Jan
*henk
Piet
kees

In de code dan dit:
AV_NAME = "*" & "henk"
 
Laatst bewerkt:
Dat is nu het probleem, dit is een bijbehorende software development kit. Ik kan niet zomaar de namen van de gratis gebruikers omgooien, dat hoort het hoofdkantoor te doen in de VS die dit al sinds 1995 traditioneel zo doen. Dat sterretje, wat doet dat precies? word de naam dan gewoon "henk"?
 
Dat sterretje doet niks speciaals maar kun je zo'n gebruiker dan aan herkennen.
Ik zal een kijken of ik iets kan verzinnen m.b.t. een string tussen quotes, dus bijvoorbeeld "henk".
Eerst eten nu :)
 
Het bloed kruipt waar het niet gaan kan dus ik wilde toch snel even kijken.
Vervang INPUT door LINE INPUT en zorg dat de quote tekens om de te verwijderen naam staan.
Gebruik daar de Ascii waarde 34 voor.

Code:
Sub vw_User()
    Dim pstrFilename As String
    Dim AV_NAME As String
    Dim userslist As String

    pstrFilename = "C:\users.list"
    AV_NAME = Chr$(34) & "henk" & Chr$(34)

    Open pstrFilename For Input As #1
    Do Until EOF(1)
        Line Input #1, Data
        If Not Data = "" Then
            userslist = userslist + Data + vbCrLf
        End If
    Loop

    Close #1
    Debug.Print "Resultaat voor replace: " & vbCrLf & userslist
    userslist = Replace(userslist, AV_NAME & vbCrLf, "")
    Debug.Print "Resultaat na Replace: " & vbCrLf & userslist
End Sub
 
lol, smakelijk. Ik heb nu dit dan:

Code:
Dim pstrFilename As String
pstrFilename = App.Path & "\users.list"

Dim userslist As String
Open pstrFilename For Input As #1
Do Until EOF(1)
        Input #1, Data
        If Not Data = "" Then
        userslist = userslist + Data + vbCrLf
        End If
    EOF (1)
    Loop
    Close #1
userslist = Replace(userslist, Chr$(34) & SDK.aw_string(AW_AVATAR_NAME) & Chr$(34), "")
Debug.Print "Resultaat: " & userslist
    Open pstrFilename For Output As #1
        Print #1, userslist
    Close #1
    
    List1.Clear
    
    Open pstrFilename For Input As #1
Do Until EOF(1)
        Line Input #1, Data
        If Not Data = "" Then
        userslist = userslist + Data + vbCrLf
        List1.AddItem (Data)
        End If
    Loop
    Close #1

En het werkt nog steeds niet.
 
Je hebt eerste INPUT nog niet vervangen door LINE INPUT.
En die EOF (1) daaronder moet weg.
 
Gedaan. Nu gebeurt er gewoon niets, "abcd" verandert niet in abcd maar blijft gewoon hetzelfde. Hij is dus niet weg.
 
Gebruik deze eens en kijk dan wat er getoond wordt. Misschien staat er nog wel een tab of een spatie na de naam in dat bestandje.

Code:
    Open pstrFilename For Input As #1
    Do Until EOF(1)
        Line Input #1, Data
        If Not Data = "" Then
debug.print "[" & data & "]"
        userslist = userslist + Data + vbCrLf
        End If
    Loop
    Close #1
 
Dat is goed.
En je hebt die eerste INPUT ook veranderd in LINE INPUT?
 
Ok.
Wat gebeurd er als je: userslist = Replace(userslist, Chr$(34) & SDK.aw_string(AW_AVATAR_NAME) & Chr$(34), "")
Vervangt door: userslist = Replace(userslist, Chr$(34) & "abcd" & Chr$(34), "")
 
Ik heb het nu zo opgelost:

Code:
avatarleft = SDK.aw_string(AW_AVATAR_NAME)
avatarleft = Replace(avatarleft, Chr(34), "")

en

Code:
userslist = Replace(userslist, Chr$(34) & avatarleft & Chr$(34), "")

Blijkt perfect te werken. Bedankt voor de hulp ;)
 
Ok, dan zat het dus in de SDK.
Mooi dat het opgelost is :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan