.csv einlesen, bearbeiten und wieder als .csv schreiben

  • VBScript

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Eierlein.

    .csv einlesen, bearbeiten und wieder als .csv schreiben

    Hey,

    ich hab eine .csv-Datei eingelesen, den Delimiter gecuttet und den Inhalt bearbeitet (in dem Fall gewisse Spalteneinträge mit Nullen aufgefüllt) und will die nun wieder zurück in .csv-Format bringen. Das heißt also wieder die einzelnen Array-Einträge nehmen und diese mit ";" verbinden.

    Wenn ich aber wie folgt versuche mit ner For-Schleife das Array wieder zusammenzustückeln, schreibt er alles in eine Zeile und nicht, wie bei der ursprünglichen .csv, in mehrere Zeilen.

    Quellcode

    1. Do until oFile.AtEndOfStream
    2. oLine = oFile.ReadLine
    3. oArray = Split (oLine, ";")
    4. if Len(oArray(1)) < 2 then
    5. oArray(1) = String(2 - Len(oArray(1)), "0") & oArray(1)
    6. end if
    7. if Len(oArray(2)) < 2 then
    8. oArray(2) = String(2 - Len(oArray(2)), "0") & oArray(2)
    9. end if
    10. if Len(oArray(14)) < 3 then
    11. oArray(14) = String(3 - Len(oArray(14)), "0") & oArray(14)
    12. end if
    13. for i = 0 to UBound(oArray)
    14. nFile.Write(oArray(i) + ";")
    15. next
    16. loop

    Habt ihr vielleicht n Tipp, wie ich da meine Parameter setzen müsste, dass es mit einer For-Schleife geht oder wäre ich mit ner anderen Art besser beraten?

    Vielen Dank schon mal im Voraus für eure Hilfe! :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „BoostedBonobo“ ()

    Für alle Interessierten: hier der Startthread, damit klar wird, worum es geht.
    @BoostedBonobo: vielleicht reicht ja schon eine kleinen Änderung am Ende zu

    Visual Basic-Quellcode

    1. nFile.WriteLine(oArray(i) + ";")

    .Write = schreibe in die bisherige Zeile
    .WriteLine = schreibe in die bisherige Zeile und mach nen Zeilenabschluss, also dann beim nächsten Schreiben Text in ne neue Zeile schreiben
    .SkipLine = Zeile überspringen
    siehe MSDN
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Argh, ja. Natürlich: besser wäre dann wohl:

    Visual Basic-Quellcode

    1. for i = 0 to UBound(oArray)
    2. nFile.Write(oArray(i) + ";")
    3. next
    4. nFile.WriteBlankLines(1)

    oder eine andere Art von Zeilenumbruch
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.