Straßen- und Ortsnamen korrekt schreiben

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
Gucky_87
Posts: 375
Joined: 03 Jul 2014, 05:09

Straßen- und Ortsnamen korrekt schreiben

15 Feb 2018, 11:01

Huhu,

Gibt es eine einfache Möglichkeit, Straßen- und Ortsnamen mit Bindestrich "-) korrekt in Groß-/Kleinschrift umzuformen?

Ich habe z.B. alles in Großbuchstaben:

OTTO-MEYER-STR. und will daraus Otto-Meyer-Str. machen.
Oder HAMBURG-ALTONA in Hamburg-Altona umwandeln.

Mit StringLower, OutputVar, InputVar , T kann ich ja den Titelmodus aktivieren, der sich aber
dummerweise nicht an die "-" hält. Die werden (logischerweise) als Zeichen betrachtet.
Löschen kann ich sie vorher nicht, da im Text andere Leerzeichen vorkommen können.

Grüße,

Gucky.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Straßen- und Ortsnamen korrekt schreiben

15 Feb 2018, 12:28

StrSplit() gegen den bindestrich. Alle elemente be'titel'n. Elemente mit neuem bindestrich verbuxeln. Irgendwie so ...
Spoiler
PS. es werden noch RegExReplace-wetten angenommen :mrgreen:
User avatar
Gucky_87
Posts: 375
Joined: 03 Jul 2014, 05:09

Re: Straßen- und Ortsnamen korrekt schreiben

15 Feb 2018, 14:24

Klar Mann. StringSplit. Nicht dran gedacht.
Dank Dir XD

Gucky.
User avatar
Gucky_87
Posts: 375
Joined: 03 Jul 2014, 05:09

Re: Straßen- und Ortsnamen korrekt schreiben

18 Feb 2018, 13:42

So, das Problem habe ich mit StringSplit gelöst.
Aber nun kommt eine 2. Sache dazu, an die ich nicht gedacht hatte:

Ich habe z.B. im Straßennamen möglicherweise Umlaute, muss also nach diesen ODER nach "AE", "OE" oder "UE" oder "ß" suchen.
Beispiel:
Schönebeckerstr. => Schoenebeckerstr.

Ich denke, dass das mit RegEx geht, nur wie?
Sicher kein 1 Zeiler?
User avatar
hoppfrosch
Posts: 443
Joined: 07 Oct 2013, 04:05
Location: Rhine-Maine-Area, Hesse, Germany
Contact:

Re: Straßen- und Ortsnamen korrekt schreiben

19 Feb 2018, 01:06

Code: Select all

; #### Lösung 1 ######
str := "Schönebeckerstr."
; Jede Ersetzung einzeln durchführen
str := RegExReplace(str, "ö", "oe")
str := RegExReplace(str, "ä", "ae")
str := RegExReplace(str, "Ö", "oe")
MsgBox(str)

; #### Lösung 2 ######
str := "Odenwälderstr."
; Alle Ersetzungen in einem assoziativen Array definieren
ReplacePatterns := {"ö": "oe", "ä": "ae", "Ä": "Ae"}
For key, value in ReplacePatterns
  str := RegExReplace(str, key, value)
MsgBox(str)
User avatar
Gucky_87
Posts: 375
Joined: 03 Jul 2014, 05:09

Re: Straßen- und Ortsnamen korrekt schreiben

19 Feb 2018, 05:30

Das sieht ja gut aus.
Mit RegEx hatte ich auch herumgespielt, da ich jedoch nicht nur die 4 Umlaute ersetzen will/muss, wären das einige RegExe´s geworden.
Dein Vorschlag mit dem Array sieht da deutlich kürzer aus XD

Lieben Dank dafür,

Gucky
just me
Posts: 9442
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Straßen- und Ortsnamen korrekt schreiben

19 Feb 2018, 06:15

Moin,

wenn Du die Zeichen einzeln ersetzt, sollte das StrReplace() auch (und wahrscheinlich sogar schneller) tun.
User avatar
Gucky_87
Posts: 375
Joined: 03 Jul 2014, 05:09

Re: Straßen- und Ortsnamen korrekt schreiben

19 Feb 2018, 18:39

Davon gehe ich auch aus, da RegEx i.A. langsamer ist, so weit ich weiß.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 28 guests