meff53
Goto Top

Zeichen zwischen 2 Trennzeichen in einer Textdatei ersetzen

Hallo Experten,

ich lese schon seit Stunden hier und experimentiere
mit den gefundenen Lösungsansetzen ohne Erfolg.

Ich habe eine Textdatei (CSV-Format, Werte mit Semikolons getrennt).
Die Datei stammt aus einem DOS-Programm und soll mit Excel
geöffnet werden. In einer Spalte steht Datenmüll, der das
Öffnen mit Excel verhindert. Da diese Spalte nicht benötigt
wird, lautet die Aufgabe:

Ersetze in der Textdatei alle Zeichen zwischen dem 15. und 16.
Semikolon durch ein beliebiges Zeichen (z.B. Leerzeichen)
oder die Zeichen entfernen.

Kann mir jemand helfen ?

Gruß
Burkhard

Content-Key: 161549

Url: https://administrator.de/contentid/161549

Printed on: April 19, 2024 at 15:04 o'clock

Member: bastla
bastla Feb 24, 2011 at 21:55:45 (UTC)
Goto Top
Hallo meff53 und willkommen im Forum!

In diesem Fall würde sich ein VBScript der Art
Datei = "D:\Deine.csv"  
Delim = ";" 'Trennzeichen  
FeldNr = 15 'x. Trennzeichen vor dem zu ersetzenden Feld  
Ersatz = " " 'einzufügendes Ersatzzeichen  

Set fso = CreateObject("Scripting.FileSystemObject")  
Zeilen = Split(fso.OpenTextFile(Datei).ReadAll, vbCrLf)
For i = 0 To UBound(Zeilen)
    Felder = Split(Zeilen(i), Delim)
    If UBound(Felder) >= FeldNr Then Felder(FeldNr) = Ersatz
    Zeilen(i) = Join(Felder, Delim)
Next
fso.CreateTextFile(Datei).Write Join(Zeilen, vbCrLf)
anbieten ...

... obwohl es ja auch möglich sein sollte, die Datei auf zB "Deine.txt" umzubenennen, in Excel zu importieren (über "Öffnen") und dabei die entsprechende Spalte vom Import auszuschließen (Schritt 3 des Assistenten: "Spalten nicht importieren (überspringen)") ...

Grüße
bastla
Member: meff53
meff53 Feb 25, 2011 at 08:41:19 (UTC)
Goto Top
Vielen Dank für die schnelle Antwort, es hat super funktioniert.
Den Import in Excel hatte ich auch schon versucht, leider ohne Erfolg. In der betreffenden Spalte stehen Zeichen, die in dem DOS-Programm eine Grafik darstellen. Das bringt den Assistenten so durcheinander, dass er an dieser Stelle mehrere neue Zeilen in die Exceltabelle einfügt und diese Zeichen nicht als eigenständige Spalte erkennt, die man beim Import übergehen könnte.
Nochmals Danke !!!
Grüße
Burkhard