
48507
06.11.2012, aktualisiert um 13:36:18 Uhr
Datei auslesen und Datensätze zusammenfassen
Moin!
Ich habe eine Datei, die so aufgebaut ist:
Zu der Datei gehört eine Beschreibung, in der steht, wie lang eine Spalte ist. Ich muss also die "Strings" auseinander nehmen.
01 markiert immer den Datensatz-Anfang (Stammdaten), alles, was dahinter kommt, sind "historische" Daten.
Problem: Wenn ich die Datei zeilenweise auslese, wie kann ich dann die historischen Daten "anhängen"? Ziel: Eine CSV-Datei, die dann so aussieht:
Die Personalnummer ist eindeutig. Zeilenweise einlesen ist auch kein Problem. Jedoch: Wie hänge die Daten hinten dran?
Jemand eine Idee?
Danke!
Ich habe eine Datei, die so aufgebaut ist:
01PersonalnummerX NameNachnameWohnort
02PersonalnummerX AndereDaten Daten
05PersonalnummerX AndereDaten Daten
01PersonalnummerY NameNachnameWohnort
02PersonalnummerY AndereDaten Daten
06PersonalnummerY DatenDaten
08PersonalnummerY DatenDaten
01 markiert immer den Datensatz-Anfang (Stammdaten), alles, was dahinter kommt, sind "historische" Daten.
Problem: Wenn ich die Datei zeilenweise auslese, wie kann ich dann die historischen Daten "anhängen"? Ziel: Eine CSV-Datei, die dann so aussieht:
01;PersonalnummerX;Name;Nachname;Wohnort;02;PersonalnummerX;AndereDaten;Daten;05;PersonalnummerX;AndereDaten;Daten
01;PersonalnummerY;Name;Nachname;Wohnort;02;PersonalnummerY;AndereDaten;Daten;06PersonalnummerY;Daten;Daten;08;PersonalnummerY;Daten;Daten
Jemand eine Idee?
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 193804
Url: https://administrator.de/forum/datei-auslesen-und-datensaetze-zusammenfassen-193804.html
Ausgedruckt am: 10.04.2025 um 20:04 Uhr
13 Kommentare
Neuester Kommentar
Servus sputnik,
in was für eine "Sprache" willst du denn die csv erstellen: vbs, batch, powershell oder ist das egal?
Also im Batch würde ich die Datei Zeile für Zeile lesen und mir eine Variable aufbauen, die ich solange ergänze, bis der nächste 01-Satz kommt, dann kannst du die Variable in eine Datei ausgeben.
Das Problem wird wohl eher das Zerlegen anhand der "Beschreibung" sein. Ist diese Beschreibung fix oder kann die sich immer mal wieder ändern?
in was für eine "Sprache" willst du denn die csv erstellen: vbs, batch, powershell oder ist das egal?
Also im Batch würde ich die Datei Zeile für Zeile lesen und mir eine Variable aufbauen, die ich solange ergänze, bis der nächste 01-Satz kommt, dann kannst du die Variable in eine Datei ausgeben.
Das Problem wird wohl eher das Zerlegen anhand der "Beschreibung" sein. Ist diese Beschreibung fix oder kann die sich immer mal wieder ändern?
Das Problem wird wohl eher das Zerlegen anhand der "Beschreibung" sein.
Ich sehe das Problem bei folgendem:die fertige CSV-Datei soll so aufgebaut sein:
01;PersonalnummerY;Name;Nachname;Wohnort;02;PersonalnummerY;AndereDaten;
Wenn nicht klar definiert ist, wie die ; hinkommen, da wird es eng werden
Gruss
Tsuki
Nun, dann würde ich das ganze in "Pakete" aufteilen und dann die einzelnen Zeilen drinnen "zusammenfassen".
Beispiel:
Das jetzige Array MeineDaten hat nun alle anderen Daten zwischen "01" enthalten.
Diese könnten dann mittels
zusammengefügt werden. JOIN wäre eine Möglichkeit.
Guss
Tsuki
Beispiel:
Set FSO = CreateObject("Scripting.FileSystemObject")
MeineDaten = Split(FSO.OpenTextFile("MeineDatenbank.db", 1).ReadAll,"01")
Diese könnten dann mittels
For i = 0 to Ubound(MeineDaten)
MeinDatensatz = Split(MeineDaten(i),vbrclf)
'...weitere Aufsplittung und Zusammenführung
Next
Guss
Tsuki