Umlaute ersetzen

  • Hallo zusammen

    bei einem Script, welches Kontaktdaten in ein Form eintragen soll, habe ich eine Funktion eingebaut, die Umlaute automatisch ändern soll, aus einem ue soll also ein ü werden. Bei Namen wie Manuel soll das aber nicht geschehen, sonst gibts einen Manül. Daher habe ich diese Ausnahmen in einer txt erfasst.

    Das Ganze funktioniert meistens auch, aber eben nur meistens, manchmal wird aus mir unerfindlichen Gründen trotzdem ein Manül eingetragen. Für mich ist das nicht so ganz logisch, entweder sollte das doch immer funktionieren oder sonst gar nicht.

    Kann mir jemand einen Tipp geben, woran das liegen könnte? Irgendwie komme ich da nicht drauf, wieso es manchmal geht und manchmal nicht.

    Danke schon jetzt mal für jeden Tipp!

    Roli von Gunten

    << Alles Gute kommt von Gunten >>

    • Offizieller Beitrag

    Dein Problem lässt sich für mich nicht rekonstruieren, da ich weder weiß, was in $sNameNeu noch was in "ausnahmen.txt" drin steht.

    Deshalb mal eine Vermutung (Befragung der Kristallkugel):

    Du verwendest beim einlesen von "ausnahmen.txt" keinen absoluten Pfad, sondern relativ zum WorkingDir. Wenn nun irgendwo im Script das WorkingDir geändert wird, so findet FileOpen die Datei nicht und Stringsplit liefert ein leeres Array zurück, was dazu führt, dass _ArraySearch keine Ausnahme findet und folglich die Buchstaben ersetzt werden.

    Und manchmal geht es, weil das WorkingDir noch mit dem ScriptDir übereinstimmt (bis irgendein Befehl das WorkingDir ändert).

  • Wie Oscar bereits schrieb :

    "Ohne zu wissen, was in $sNameNeu oder ausnahmen.txt steht, bleibt es bei Vermutungen."

    Nebenbei :

    Wenn Du die Variablen mit einem Typenpräfix versiehst, dann auch richtig ;):

    Statt $sAusnahmen = StringSplit($sAusnahmen, ";")

    ==> $aAusnahmen = StringSplit($sAusnahmen, ";") , da StringSplit ein Array zurückgibt, keinen String.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Code
    FileClose("$AusnahmeDatei")

    sollte

    Code
    FileClose($AusnahmeDatei)

    lauten.

  • Hallo zusammen

    danke für die Tipps und sorry wegen der späten Antwort, konnte mich zwischenzeitlich nicht darum kümmern. In der txt Datei sind diese Namen wie Manuel, Samuel, etc, aber auch Nachnamen wie Neuendorfer drin, getrennt mit Semikolon, ohne Leerstellen o.ä. $sNameNeu[1] ist der Vorname, $sNameNeu[2] der Nachname der "Datensätze". So wie ich Eure Tipps richtig verstanden habe, kann ich das so machen:

    Code
    ;~ Local $AusnahmeDatei = FileOpen(@ScriptDir&"\ausnahmen.txt")
    Global $aAusnahmen = FileRead($AusnahmeDatei)
    $aAusnahmen = StringSplit($aAusnahmen, ";")
    ;~ FileClose($AusnahmeDatei)

    Die erste und die letzte Zeile könnte ich demnach ja weglassen, habe Eure Tipps dort aber trotzdem umgesetzt. Muss heute Abend vermutlich gleich wieder einige Datensätze bearbeiten und werd das mal versuchen.

    Vielen Dank für die Vielen Tipps!! :thumbup::thumbup::thumbup:

    Roli von Gunten

    << Alles Gute kommt von Gunten >>

  • In der txt Datei sind diese Namen wie Manuel, Samuel, etc, aber auch Nachnamen wie Neuendorfer drin, getrennt mit Semikolon, ohne Leerstellen o.ä. $sNameNeu[1] ist der Vorname, $sNameNeu[2] der Nachname der "Datensätze"

    Poste diese Datei doch einfach mal als Anhang, nicht als Beschreibung. Dann müssen wir uns das Ding für weitere Tests nicht selbst erstellen ;).

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Ja, Zeile 2 hat noch einen Fehler, wenn Zeile 1 ja wegfällt :/

    Global $aAusnahmen = FileRead(@ScriptDir&"\ausnahmen.txt")

    Roli von Gunten

    << Alles Gute kommt von Gunten >>

  • Hab soeben etwa 100 Namen durchrasseln lassen und das hat wunderbar geklappt, somit war das Problem wohl der mangelhafte Pfad zum txt. Somit hat sich das nun erledigt.

    Aber nochmals vielen Dank für die vielen Inputs!!

    Roli von Gunten

    << Alles Gute kommt von Gunten >>