| |
|
|
 Erasmus.Herold | Hallo zusammen.
Hat jemand einen Ansatz, wie ich Straße und Hausnummer sauber trennen kann?
einfach: Domplatz 45
kompliziert: Von Grafen Straße 45 A Marktplatz 45A - C ...
Kann ich Zahlen in einem String erkennen lassen und sagen, alles vor der Zahl ist Straße alles mit und nach der Zahl ist Hausnummer?
Wer hat eine Idee mit Codebeispiel?
Danke euch - Erasmus |
|
|
| |
|
|
|
 H.Brill | So in etwa ?
Declare String Strassen[]
Declare String nr, zusatz, strasse
Strassen[0] = "Domplatz 45"
Strassen[1] = "Von Grafen Straße 45 A"
Strassen[2] = "Marktplatz 45A - C"
Strassen[3] = "Hauptstrasse 12B"
Strassen[4] = "Hinter den Gärten 50 D"
Set("RegEx", 1)
WhileLoop 0, SizeOf(Strassen[]) - 1
Strasse = Match$("[a-zA-Z äÄöÖüÜß]{1,}", Strassen[&LOOP])
Nr = Match$("[0-9]{1,3}", Strassen[&LOOP])
zusatz = Mid$(Strassen[&LOOP], (%MatchPos + %MatchLen), 6)' 6 Stellen dürften reichen
Print "Straße : ", Strasse
Print "Nummer : ", Nr
Print "Zusatz : ", Trim$(zusatz)
EndWhile
WaitKey
Set("RegEx", 0)
End
|
|
|
| |
|
|
|
 Erasmus.Herold | Das ist perfekt - danke dir ...
Wieso bedarf es des Umschaltens mit "RegEx"? |
|
|
| |
|
|
|
 H.Brill | Das Match$() funktioniert auch ohne Umschalten. Steht ja auch so in der Hilfe bei Match$(). Bei den beiden Funktionen InStr() und Translate$() ist es Pflicht.
Ist aber so eine Eigenart von mir. Wenn ich reguläre Ausdrücke benutze, schalte ich automatisch mit Set("RegEx", 1) die reg. Ausdrücke ein, egal ob Match$(), InStr() oder Translate$(). |
|
|
| |
|
|