Domino 9 und frühere Versionen > ND9: Entwicklung
Fehler bei Split bzw. StrToken mit leeren Werten
jBubbleBoy:
Verwende vorher ein Replace:
--- Code: ---Dim s$, v
s = "1~~~~~~3"
s = Replace(s,"~~","#")
v = Split(s,"#")
s = ""
ForAll x In v
s = s + Chr(10) + x
End ForAll
MsgBox s
--- Ende Code ---
dann klappt es
Jürgen Schomann:
Vielen Dank für den Hinweis. diese Idee hatte ich auch schon aber dann wieder verworfen.
Z. B. wird dies dann falsch:
s = "1~~~~#3"
nach Replace(s, "~~", "#") wird s = "1###3"
und Split(s, "#") liefert dann 1, leer, leer, 3 statt richtig 1, leer, #3
jBubbleBoy:
# war nur ein Beispiel, ich verwende gern seltene, vom User & System so gut wie nie verwendete Zeichen, z.B. die Schildkröte: ¤
Und die ist noch unwahrscheinlicher als die Tilde ~ ;)
Aber ein Restrisiko gibt es immer, wenn alle Zeichen vorkommen können.
jBubbleBoy:
Ergänzend möchte ich noch erwähnen, das man dem Problem vorbeugen kann indem man keine einfache Trennzeichenfolge wählt, z.B:
--- Code: ---Dim s$, v
s = "1~¤~¤~¤3"
v = Split(s,"~¤")
s = ""
ForAll x In v
s = s + Chr(10) + x
End ForAll
MsgBox s
--- Ende Code ---
Also ~¤ anstatt ~~ und auch das, nur ein Beispiel, der Key kann beliebig lang sein.
Das sollte man machen, wenn wirklich alles an Zeichen vorkommt. Kann auch für ein Replace genutzt werden, wenn ~~ eine feste Vorgabe ist.
Peter Klett:
Zwei gleiche Zeichen als Trennzeichen zu verwenden, um das Vorhandensein eines Zeichens in den Daten zu ermöglichen, ist m.E. nicht wirklich eine gute Idee. Was sollte bei
Split ("1~~~~~3", "~~") herauskommen?
1
~3
und
1
~
3
sind beides gültige Ergebnisse und zeigen, dass es nicht funktionieren kann.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln