CSV Datei mit VBS auslesen
Hallo zusammen,
ich bin in Sachen VBS ein totaler Anfänger und hoffe, dass ihr mir bei einem Problem helfen könnt.
Ich möchte eine CSV-Datei per VBS verändern. Die CSV kommt regelmäßig und die Änderung soll automatisch erfolgen.
Die CSV hat folgenden Aufbau:
anwenderID;anwenderName;Software
1;Meier;Office
1;Meier;Firefox
1;Meier;Notepad++
2;Schmidt;Office
2;Schmidt;Chrome
Meine Zieldatei soll wie folgt aussehen:
andwenderID;anwenderName;Software1;Software2;Software3;SoftwareN
1;Meier;Office;Firefox;Notepad++;
2;Schmidt;Office;Chrome;;
Als eindeutige Identifikation kann die anwenderID verwendet werden.
Wie kann ich es also anstellen, dass mein VB-Skript auf die anwenderID reagiert. Also die Software in eine Zeile, solange die ID identisch ist?
Oder habt ihr andere Lösungsvorschläge?
Vielen Dank für Eure Unterstützung
Björn
ich bin in Sachen VBS ein totaler Anfänger und hoffe, dass ihr mir bei einem Problem helfen könnt.
Ich möchte eine CSV-Datei per VBS verändern. Die CSV kommt regelmäßig und die Änderung soll automatisch erfolgen.
Die CSV hat folgenden Aufbau:
anwenderID;anwenderName;Software
1;Meier;Office
1;Meier;Firefox
1;Meier;Notepad++
2;Schmidt;Office
2;Schmidt;Chrome
Meine Zieldatei soll wie folgt aussehen:
andwenderID;anwenderName;Software1;Software2;Software3;SoftwareN
1;Meier;Office;Firefox;Notepad++;
2;Schmidt;Office;Chrome;;
Als eindeutige Identifikation kann die anwenderID verwendet werden.
Wie kann ich es also anstellen, dass mein VB-Skript auf die anwenderID reagiert. Also die Software in eine Zeile, solange die ID identisch ist?
Oder habt ihr andere Lösungsvorschläge?
Vielen Dank für Eure Unterstützung
Björn
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 232922
Url: https://administrator.de/forum/csv-datei-mit-vbs-auslesen-232922.html
Ausgedruckt am: 13.04.2025 um 09:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo scorpionesc83!
Schematisch etwa so:
Eine richtige CSV entsteht so nicht, da es (lt Deinem Beispiel oben) eine unterschiedliche Feldanzahl geben kann. Auch die Kopfzeile musst Du Dir noch zurechtlegen ...
Grüße
bastla
Schematisch etwa so:
Ein = "Deine.csv"
Aus = "Deine neue.csv"
Delim = ";"
Set fso = CreateObject("Scripting.FileSystemObject")
Set d = CreateObject("Scripting.Dictionary")
'gesamten Dateiinhalt einlesen und zeilenweise getrennt in Array ablegen
Zeilen = Split(fso.OpenTextFile(Ein).ReadAll, vbNewline)
'ab der zweiten Zeile (= Index 1; erste Zeile enthält Header) durchgehen
For i = 1 To UBound(Zeilen)
Felder = Split(Zeilen(i), Delim) 'anhand des Delimiters in Felder-Array zerlegen
ID = Felder(0) 'ID steht im ersten Feld
If d.Exists(ID) Then ' ID schon vorhanden?
'Wenn ja: nur Software am Ende anfügen
d.Item(ID) = d.Item(ID) & Delim & Felder(2)
Else
'neue ID: Name + Software eintragen
d.Add ID, Felder(1) & Delim & Felder(2)
End If
Next
'Alle Datensätze ausgeben
For Each ID In d.Keys 'alle Dictionary-Einträge durchgehen
Ausgabe = Ausgabe & vbNewline & ID & Delim & d.Item(ID)
Next
fso.CreateTextFile(Aus).Write Mid(Ausgabe, 3)
Grüße
bastla