Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: tuxie am 20.09.02 - 08:26:30

Titel: Inhalt eines Feldes aufteilen
Beitrag 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
Titel: Re: Inhalt eines Feldes aufteilen
Beitrag von: Axel am 20.09.02 - 08:46:30
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
Titel: Re: Inhalt eines Feldes aufteilen
Beitrag von: tuxie am 20.09.02 - 09:12:40
Ich habe noch keine Rechenoperationen gemacht aber geht das:

laenge=@Length(cache);
lange=laenge-6;
FIELD ort:=@Right(cache;lange);SELECT @All

Tschau Ingo
Titel: Re: Inhalt eines Feldes aufteilen
Beitrag von: Axel am 20.09.02 - 09:20:33
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
Titel: Re: Inhalt eines Feldes aufteilen
Beitrag von: tuxie am 20.09.02 - 09:22:05
Nee hat nicht fubktioniert,

aber die lösung sieht so aus.

FIELD ort:=@RightBack(cache;6);SELECT @All
Titel: Re: Inhalt eines Feldes aufteilen
Beitrag von: fritandr am 20.09.02 - 09:27:25
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
Titel: Re: Inhalt eines Feldes aufteilen
Beitrag von: tuxie am 20.09.02 - 09:32:01
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
Titel: Re: Inhalt eines Feldes aufteilen
Beitrag von: tuxie am 20.09.02 - 09:32:36
Ja Funktioniert

Tschau Ingo
Titel: Re: Inhalt eines Feldes aufteilen
Beitrag von: Rob Green am 20.09.02 - 10:23:43
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$§%"