Huhu,
wieder mal ein Problem:
Will in eine Dialogliste Straßennamen eingeben, die sollen dann gegen ein Straßenverzeichnis gecheckt werden. Allerdings sollen in der Dialogliste auch Straße + Hnr eingegeben werden können. Die optionale HNr ist also zu strippen, sofern vorhanden. Dazu habe ich mir folgende Lösung ausgedacht:
- letztes Wort suchen
- mit TextToNumber prüfen, ob rechter Teil mit Zahl beginnt
- rechte zwei Zeichen des letzten Wortes suchen
- mit TextToNumber prüfen, ob mit Zahl beginnt (wg Konstruktionen mit zB HNr=44a etc)
Funkt, aber ich habe bei Mehrfachwerten natürlich Probleme, weil die Korrekturfunktion auf die ganze Liste ausgeführt wird.
Jetzt habe ich mich irgendwie verrant und finde auf die Schnelle keinen neuen Ansatz. Könnt Ihr helfen?
Hier der 'alte' Code:
str:=@Trim(DialogListe);
segl:=@RightBack(str;" ");
segsegr:=@Right(segl;2);
errAnf:=@IsError(@TextToNumber(segl));
errEnd:=@IsError(@TextToNumber(segsegr));
strStrasse:=
@If(
errAnf | errEnd;
str;
@LeftBack(str; " ")
);
strliStrassen:=@Trim(@DbColumn("":"NoCache";"":"";"Straßennamen";1));
@If(
@IsMember(strStrasse;strliStrassen);
@Success;
@Failure("Mindestens ein Straßenname konnte nicht im Straßenverzeichnis gefunden werden. Bitte prüfen Sie Ihre Auswahl.")
)