Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe:Sonderzeichen ersetzen in vielen Textdateien

Hilfe:Sonderzeichen ersetzen in vielen Textdateien
Mandy
Holle,
ich brauche dringend Eure Hilfe. Habe mir durch einen dummen Fehler ca. 500 Textdateien durch verzippen, konvertieren, ..... abspeichern so verbogen, dass alle Umlaute (Ä, ä; Ü,ü, Ö, ö, ß)
durch irgend welche Sonderzeichen ersetzte wurden:
Ü = Ü
ü = ü
ö = ö
ä = ä
ß = ß
Ich müsste nun alle Dateien öffnen und Suchen / ersetzen ausführen.
Tino und Ransi haben mir vor ein paar Tagen ein coolen Code geschrieben, mit denen ich diese besagten Textfiles alle auf einmal durchrattern konnte und in allen Files text herausschneiden konnte.
das ging blitzschnell.
Gibt es eine Möglichkeit , dass ein Makro alle Textdateien in einem Verzeichnis öffnet und dort alle Sonderzeichen durch die richtigen Umlaute ersetzt (siehe Tabelle oben)
Hoffe, mir kann jemand Helfen, Danke
Mandy

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Hilfe:Sonderzeichen ersetzen in vielen Textdateien
22.08.2011 10:24:42
Tino
Hallo,
kannst mal testen.
Wie immer zuerst eine Sicherung Deiner Textdateien anlegen,
sollte etwas schief gehen kannst Du diese wiederherstellen!
Option Explicit

Sub Beispiel()
Dim strPath$, strDir$, sLines$, UmbruchZeichen$
Dim ArrayFile(), ArrUmlaute
Dim n&, nn&
Dim F%

'Auslistung Zeichen Reihenfolge beachten 
'Suchzeichen, ersetze durch, Suchzeichen, ersetze durch usw... 
ArrUmlaute = Array("Ü", "Ü", "ü", "ü", "ö", "ö", "ä", "ä", "ß", "ß")

'evtl. Pfad anpassen wo sich die Textdateien befinden 
'hier sind diese auch diese Excel-Datei liegt 
strPath = ThisWorkbook.Path

If Right$(strPath, 1) <> "\" Then strPath = strPath & "\"

'*.txt- Dateien im Ordner suchen u. sammeln 
strDir = Dir$(strPath & "*.txt", vbNormal)
Do While strDir <> ""
    Redim Preserve ArrayFile(n)
    ArrayFile(n) = strPath & strDir
    n = n + 1
    strDir = Dir$()
Loop

If n > 0 Then
    UmbruchZeichen$ = Chr(8) & Chr(9) & Chr(10) & Chr(13)
    
    For n = Lbound(ArrayFile) To Ubound(ArrayFile)
       'Datei einlesen 
        F = FreeFile
        Open ArrayFile(n) For Binary As #F
        sLines = Space$(LOF(F))
        Get #F, , sLines
        Close
        
        'Ersetze Zeichen im String 
        For nn = Lbound(ArrUmlaute) To Ubound(ArrUmlaute) Step 2
            sLines = Replace(sLines, ArrUmlaute(nn), ArrUmlaute(nn + 1))
        Next nn
            
        'nicht benötigte Umbruchzeichen am Ende löschen 
        Do While InStr(UmbruchZeichen, Right$(sLines, 1)) > 0
            sLines = Left$(sLines, Len(sLines) - 1)
        Loop
            
        'String zurückschreiben 
        Open ArrayFile(n) For Output As #F
        Print #F, sLines
        Close #F
    Next n
End If

End Sub
Gruß Tino
Anzeige
Danke Tino, perfekt, wie immer :-) owT
Mandy

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige