Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: tuxie am 20.09.02 - 08:26:30
-
Hallo,
habe ein Problem, ich habe eine DB erstellt für Adressen, in diese DB habe ich einen Altbestand Importiert, hat auch Funktioniert.
Jetzt habe ich im Feld ort folgendes stehen
09648 Mittweida
09649 Seifersbach
Jetzt habe ich den inhalt in ein Feld cache kopiert
und die Plz mit
Field plz:=@left(cache;5)
in das Feld plz geschrieben.
Jetzt weiß ich aber nicht wie ich den Ort in das Feld Ort Schreiben soll da ich ja @right nicht nutzen kann da ich die anzahl der stellen nicht weiß. Oder gibt es eventuell eine möglichkeit die Stellenanzahl eines Feldes herauszufinden.
Tschau Ingo
-
Hi,
du kannst die Funktionen @Left, @Right etc. nicht nur mit einer Anzahl von Zeichen aufrufen, sondern auch mit einem Zeichen bzw. Zeichenkette, ab der der linke oder rechte Teil zurückgegeben wird.
Beisp.: @Right("09648 Mittweida"; " ") ergibt Mittweida
Die Länge eines Feldinhalt kann mit der Formelfunktion @Length ermittelt werden.
Axel
-
Ich habe noch keine Rechenoperationen gemacht aber geht das:
laenge=@Length(cache);
lange=laenge-6;
FIELD ort:=@Right(cache;lange);SELECT @All
Tschau Ingo
-
Hi Ingo,
sollte funktionieren.
Versuch's doch auch mal damit:
FIELD ort:=@Right(cache;" ");
Das sollte so auch funktionieren und ist nur eine Zeile. Könnte sogar schneller sein, da nur ein Befehl ausgeführt werden muß.
Axel
-
Nee hat nicht fubktioniert,
aber die lösung sieht so aus.
FIELD ort:=@RightBack(cache;6);SELECT @All
-
Hallo,
das mit @right(...) hat allerdings einen Haken wenn im Ursprungsfeld "76530 Baden-Baden Geroldsau" oder ähnliches steht. Es wird dann nämlich nur "Geroldsau" ermittelt. Oder täusche ich mich?
Ciao
fritandr
-
Nee wieso;
er beginnt beim 6. zeichen und kopiert alle zeichen nach Rechts in das angegeben feld.
Aber ich teste es mal aus und sage bescheid.
Tschau Ingo
-
Ja Funktioniert
Tschau Ingo
-
ein Vorschlag zur besseren Kontrolle der Eingabe, bevor man hergeht und die Dinger in zwei Felder auftrennt, denn der User kann guten Blödsinn eingegeben haben, wie
ABCDE 12345-67857 oder
10000Berlin oder
100000 Berlin etc...
Eine zusammenhängende Formel, ich denke wohl selbstprechend:
_PLZCheck:=@Left(Checker;5);
@If(@Matches(_PLZCheck;"+{0-9}") ;@Success;@Return(@Prompt([OK];"Warn PLZ";"Warn PLZ")));
_Trenner:=@middle(Checker;5;1);
@if(_Trenner=" ";@success;@Return(@Prompt([OK];"Warn Trenner";"Warn kein Space zwischen PLZ und Ort")));
_OrtCheck:=@rightback(Checker;6);
@If(@Matches(_OrtCheck;"+{!0-9}") ;@Success;@Return(@Prompt([OK];"Warn Ort";"Warn Ort")));
Die Formel fängt alles ab außer Konstrukten wie etwa
10000 Berlin$§%"