Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Thomas Schulte am 12.12.05 - 14:47:17

Titel: Verhalten von @explode mit Mehrteiligen Trennern ...
Beitrag von: Thomas Schulte am 12.12.05 - 14:47:17
Entweder bin ich endgültig komplett verblödet oder irgendetwas ist in der letzten Zeit an mir vorbeigerauscht.

Folgende Liste Habe ich als TextString:
Begriff~~Benutzername~~Datum1~~Zeit1~~Datum2~~Zeit2~~TimeStamp~~Bemerkung~~Minuten.

Herkömmlich getrennt wird das durch ja durch
@explode(TextString;"~~").
Damit bekomme ich dann wenn alle Wert gefüllt wurden ja auch folgendes zurück:
Back[1]=Begriff
Back[2]=Benutzername
.
.
Back[9]=Minuten

Wenn ich jetzt aber einen leeren Eintrag da mit drinnen habe (zum Beispiel keine Bemerkung) dann ist es Essig mit der Zuordnung. Plötzlich fehlt mir ein Element. Back[9] ist also plötzlich Back[8].

Na gut. Dafür gibt es ja bekanntlich den dritten Parameter bei @explode Dann sieht das Dingens nämlich so aus:
@explode(TextString;"~~";1)

Richtig?

Gut.

FALSCH!!!!

Wenn du diesen Parameter nämlich mit einem Zweistelligen gleichen (nur damit hab ich das ausprobiert) String für den Explode verwendest, dann ...

Ja dann kriegst du plötzlich etwas ganz anderes bei der Geschichte raus und zwar:
Back[1]=Begriff
Back[2]=
Back[3]=Benutzername
Back[4]=
Back[5]=Datum
.
.
Back[17]=Minuten

Entweder ist mir das noch nie so aufgefallen oder wie schon oben gesagt irgendwas hab ich verpennt.

Titel: Re: Verhalten von @explode mit Mehrteiligen Trennern ...
Beitrag von: Tode am 12.12.05 - 15:29:07
da kann ich nur sagen: Glück gehabt bisher....

Hier ein Auszug aus der Hilfe:

Text. Optional. Ein oder mehrere Zeichen, durch die das Ende eines Elements in Zeichenfolge definiert wird. Standardmäßig wird für Trennzeichen " ,;" (Leerzeichen, Komma, Semikolon) angenommen....

Das heisst: In der Zeichenkette, die als Trennzeichen verwendet wird, wird jedes Zeichen EINZELN als Trenner betrachtet:

@Explode( "TEST~TEST2§TEST3~§TEST4" ; "~§" )

ergibt tatsächlich
TEST
TEST2
TEST3
TEST4

und nicht wie man vielleicht erwartet

TEST~Test2§TEST3
TEST4

ALSO: @Explode( TextString ; "~~" ) entspricht vom Ergebnis her EXAKT @Explode( TextString ; "~" ) (weil intern quasi ein @Unique über die Trennzeichen gemacht wird)

PG kann ich da nur sagen...

Gruß
Tode
Titel: Re: Verhalten von @explode mit Mehrteiligen Trennern ...
Beitrag von: Thomas Schulte am 12.12.05 - 15:40:21
Text. Optional. Ein oder mehrere Zeichen, durch die das Ende eines Elements in Zeichenfolge definiert wird.
Das Problem dabei ist das man diese Textstelle auch anders interpretieren kann. Nämlich so, das der Trenner ein oder mehrere Zeichen lang sein können, man als z.B. auch "STOP" als Trennzeichen verwenden dürfte.

Was ja nicht stimmt.

Und was noch viel intelligenter ist, ich kenne jetzt Dutzende von Büchern und noch einige mehr Anwendungen, die exakt auf dieser Prämisse basierend zum Beispiel ihre Datenübernahme organisiert haben.
Titel: Re: Verhalten von @explode mit Mehrteiligen Trennern ...
Beitrag von: Tode am 12.12.05 - 15:48:36
dann haben alle diese Entwickler ziemlich Viel Glück gehabt...

habe es gerade probiert:

@Implode( @Explode( "ASTOPBTC" ; "STOP" ) ; "~" )

ergibt:

A~B~C
und eben NICHT
A~BTC

Gruß
Tode