.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.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    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.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.