29. september 2001 - 16:13
Der er
5 kommentarer og 1 løsning
Split streng i to
Fra en server modtages en streng som denne: tekst#c=Farve (Et eksmempel: Hej med dig#c=vbRed) Nu skal denne streng så splittes i to. En streng der indeholder teksten alene og en streng der inderholder farven alene. Det vil sige: Strengtext = Hej med dig Strengfarve = vbRed #C= skal ikke bruges længere!! Da strengtext godt kan indeholde # er det vigtigt, at strengen splittes ved det sidste # i hele strengen, da strengfarve ikke kan indeholde #. Hvis serveren sender en streng uden indhold af: #c= så skal der ske følgende: strengtext = strServer (hele strengen bare) strengfarve = vbWhite (standardfarve) Er der nogen, der kan hjælpe med at lave dette? Jeg har prøvet mange ting, men kan IKKE få det til at virke... / Martin
Annonceindlæg fra Deloitte
29. september 2001 - 18:42
#1
ModtagetStreng = \"Hej med dig#c=vbRed\" StrengTekst = Left(ModtagetStreng, InStr(ModtagetStreng, \"#\") - 1) StrengFarve = Mid(ModtagetStreng, InStr(ModtagetStreng, \"=\") + 1) Hvis der er mellemrum ved \" = \" skal +1 ændres til +2 i StrengFarve.
29. september 2001 - 18:59
#2
Men den går jo ikke, for hvis ModtagetStreng indeholder \"#\" eller \"=\" så splitter den jo for tidligt... Det er vigtigt at den splitter ved den sidste # og sidste \"=\" i strengen. / Martin
29. september 2001 - 19:19
#3
Prøv med følgende kode: ModtagetStreng = \"Hej med dig#c=vbRed\" strengtekst = Left(ModtagetStreng, InStrRev(ModtagetStreng, \"#\") - 1) strengfarve = Mid(ModtagetStreng, InStrRev(ModtagetStreng, \"=\") + 1)
29. september 2001 - 19:33
#4
Ea data: Jeg tror det virker fint nok, men der mangler lige, hvis modtagetstreng ikke indeholder \"#c=\" så skal den ikke splittes. Hvis du kan fikse den også, så er der point :) men foreløbig tak :) / martin
29. september 2001 - 19:36
#5
Rutinen kan også udbygges så der tages højde for at der ikke er angivet farve og at mellemrum fjernes fx således: modtagetstreng = \"Hej med dig#c=vbred\" pos = InStrRev(modtagetstreng, \"#c=\") If pos <> 0 Then strengtekst = Trim(Left(modtagetstreng, pos - 1)) strengfarve = Trim(Mid(modtagetstreng, pos + 3)) Else strengtekst = modtagetstreng strengfarve = \"vbWhite\" End If
29. september 2001 - 19:45
#6
Jamen jeg takker da mange gange :) Det virker som det skal :) Mange tak!! / Martin
Kurser inden for grundlæggende programmering