Domino 9 und frühere Versionen > ND9: Entwicklung
@Explode an String "+AND+"
Christian Kröll:
Hallo zusammen,
aus einer URL muß ich einen SearchString auswerten und den String an den Stellen "+AND+" in eine Liste zerlegen. Mit @Explode(text;"+AND+") kein Problem.
Wenn in meinem String aber "=N" vorkommt, so erkennt @Explode dies anscheinend als ein "+AND+".
Zum Test könnt Ihr in einem Berechneten Text folgendes Beispiel hinterlegen. Mit der Version 1 kein Problem
Beispiel1 :
--- Code: ---_text := "Klasse=Vögel+AND+Ordnung=Greifvögel+AND+Gattung=Steinadler";
_text := @Explode(_text;"+AND+");
@For(n := 1;
n <= @Elements(_text);
n := n + 1;
_result := _result + _text[n] + @NewLine
);
_result
--- Ende Code ---
Beispiel2: (mit =N)
--- Code: ---_text := "Klasse=Vögel+AND+Ordnung=Nreifvögel+AND+Gattung=Nteinadler";
_text := @Explode(_text;"+AND+");
@For(n := 1;
n <= @Elements(_text);
n := n + 1;
_result := _result + _text[n] + @NewLine
);
_result
--- Ende Code ---
Könnt Ihr mir den Fehler bestätigen oder möglicherweise den Hintergrund erklären? Bedeutet vielleicht in einer mir nicht bekannten Sprache
=N dasselbe wie "+AND+"
Vielen lieben Dank schonmal!
Peter Klett:
Das Beispiel steht fast wörtlich so in der Hilfe. Ein @Explode mit "and" trennt nach a, n und d, bei Dir als nach +, A, N und D.
Du solltest +AND+ durch ein einzelnes Trennzeichen ersetzen, das definitiv nicht vorkommt und darüber explodieren
--- Code: ---_text := @ReplaceSubstring ("Klasse=Vögel+AND+Ordnung=Nreifvögel+AND+Gattung=Nteinadler"; "+AND+"; "@");
_text := @Explode(_text;"@");
--- Ende Code ---
Ottmar:
Der Fehler ist mir auch neu, ich habs gerade probiert, ist bei mir aber auch so.
Ob der Workarround mit @ReplaceSubstring funktioniert, weiss ich nicht, möglicherweise transferiert er auch "=N" ind "@"
Diese Variante funktioniert aber, hab's gerade probiert...
_text := "Klasse=Vögel+AND+Ordnung=Nreifvögel+AND+Gattung=Nteinadler";
_text := @Explode(_text;"+");
@For(n := 1;
n <= @Elements(_text);
n := n + 1;
_result := _result + @If(@LowerCase(_text[n]) = "and"; ""; _text[n] + @NewLine)
);
@Prompt([OK]; "Test"; _result)
Ottmar:
Ups, Schnellschuss, Mia Culpa, Meine Lösung funktioniert zwar auch, meine Kommentierung bitte ignorieren, Peter hat natürlich völlig recht.
Peter Klett:
--- Zitat von: Ottmar am 12.05.17 - 14:00:52 ---Ups, Schnellschuss, Mia Culpa, Meine Lösung funktioniert zwar auch, meine Kommentierung bitte ignorieren, Peter hat natürlich völlig recht.
--- Ende Zitat ---
<OT>
Deine Lösung ist aber nicht international einsetzbar, denn "and" ist norwegisch und heißt "Ente", und ist damit ein gültiger Wert in Christians Textliste, zumindest bei uns ... ;)
</OT>
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln