admin1987
Goto Top

Aus Datei String lesen und in Neue Datei speichern

Hallo!

Hoffe Ihr könnt mir helfen?
Ich möchte aus einer Datei "test.txt" 3 Werte auslesen und alle Zeichen die in dieser Zeile danach sind in eine neue Datei speichern (Semikolongetrennt)

test.txt
Name: Test
Vorname: Tester
Alter: 3
Strasse: xx
Wohnort: xx

Es soll nun per vbs der Wert für den Name, den Vorname und das Alter gelesen werden und kommagetrennt in eine neue Datei (text.csv) gespeichert werden. (Es muss also nach dem String "Name:" gesucht werden und die Werte danach sollen in die csv exportiert werden.

test.csv soll dann so aussehen
Test;Tester;3

Wer kann mir helfen?

Danke und Grüße

Content-Key: 132767

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

Printed on: April 23, 2024 at 05:04 o'clock

Member: bastla
bastla Jan 05, 2010 at 14:20:05 (UTC)
Goto Top
Hallo admin1987!

Sollte etwa so gehen:
Ein = "D:\test.txt"  
Such = Array("Name: ", "Vorname: ", "Alter: ")  
Aus = "D:\test.csv"  
Delim = ";"  

Set fso = CreateObject("Scripting.FileSystemObject")  
Text = Split(fso.OpenTextFile(Ein).ReadAll, vbCrLF)
UText = UBound(Text)

Zeile = ""  
For i = 0 To UBound(Such)
    LSuch = Len(Such(i))
    Gef = ""  
    For j = 0 To UText
        If Left(Text(j), LSuch) = Such(i) Then
            Gef = Mid(Text(j), LSuch + 1)
            Exit For
        End If
    Next
    Zeile = Zeile & Delim & Gef
Next

fso.OpenTextFile(Aus, 8, True).WriteLine Mid(Zeile, 2)
Beim Schreiben in die csv-Datei wird die Zeile an eine schon bestehende Datei angefügt - falls die Datei neu erstellt werden soll, ersetzte die letzte Zeile durch:
fso.CreateTextFile(Aus).WriteLine Mid(Zeile, 2)
Gesucht wird übrigens nur jeweiils am Zeilenanfang nach dem exakten String (unter Beachtung von Groß-/Kleinschreibung) und es wird in dieser Version auch nicht geprüft, ob alle Werte gefunden wurden (falls ein Wert nicht gefunden wird, wird nur das Trennzeichen gesetzt - bei fehlendem Vornamen würde daher das Ergebnis so aussehen: "Test;;3").

Grüße
bastla
Member: admin1987
admin1987 Jan 05, 2010 at 15:19:21 (UTC)
Goto Top
suuuper!
hat sofort funktioniert

Danke und schönen Abend

Grüße