Aus Textfile (liste) einzelne Dateien erzeugen und abspeichern

  • Hallo zusammen,
    ich habe da eine kleine Challenge zu bewältigen, bei der ich irgendwie nicht so recht den Einstieg finde.
    Ziel ist es, aus einem gegebenen strukturierten Textfile mehrere einzelne Textfiles zu erzeugen und diese
    mit einem ebenfalls im Textfile vorgegebenen Namen abzuspeichern.
    Schematischer Ablauf:
    Zeilen 1-5 ergeben den Inhalt der ersten neuen Datei
    Zeile 6 ist der Dateiname der ersten neuen Datei
    Zeilen 7-11 ergeben den Inhalt der zweiten neuen Datei
    Zeile 12 ist der Dateiname der ersten neuen Datei
    usw...

    Zum besseren Verständnis hier der Aufbau des Textfiles:

    [AAAAA]
    O=Sequential
    R=111:222
    T=A1B2C3
    R=databases\A\123.xxx
    123.zzz
    [BBBBB]
    O=Sequential
    R=123:123
    Title=1SW3BBB
    R=databases\A\mmm.xxx
    mmm.zzz

    (Anm.: alle Lines schliessen mit CRLF ab)

    Theoretisch denke ich, könnte der Ablauf des Scripts so aussehen:
    Textfile öffnen
    Textfile in Array laden

    Do While not Anzahl ArrayElemente = 0
    ArrayElemente 1-5 auslesen und in neue Datei schreiben
    ArrayElement 6 auslesen und den 'Wert' als Dateiname für die (1.) neue Datei verwenden
    Neue Datei abspeichern
    ArrayElemente 1-6 löschen
    WEnd

    Exit

    Mein Problem ist das mit dem Array - ich denke mal da kommt UBound zum Einsatz ..... ????

    So nun hoffe ich mal euf den ein oder anderen Tip / Ansatz der mir hilft
    (das wäre jedenfalls SUPER)

    Danke schon einmal im voraus
    mfg
    ugt100

    Einmal editiert, zuletzt von ugt100 (22. März 2013 um 20:40)

  • Schau dir mal

    [autoit]

    IniRead
    IniWrite
    IniReadSection
    IniWriteSection

    [/autoit]


    an ;)

    Mfg

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Sollte so klappen (ungetestet):

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    #include <File.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $aInFile, $sInFile='DeineGrosseDatei.txt' ;Dateinamen anpassen
    Global $hOutFile
    _FileReadToArray($sInFile,$aInFile)

    [/autoit] [autoit][/autoit] [autoit]

    For $j=6 to $aInFile[0] Step 6
    $hOutFile = FileOpen($aInFile[$j],2)
    For $k = $j-5 to $j-1
    FileWriteLine($hOutFile,$aInFile[$k])
    Next
    FileClose($hOutFile)
    Next

    [/autoit]

    mfg autoBert

  • Hallo zusammen.
    es ist wie immer einfach gut hier im Forum. Es gibt immer wieder schnelle Hilfe.

    Ein Dank in diesem Fall an PainTain und Autobert :thumbup:

    Da das Ganze mir keine Ruhe gelassen hat, habe ich eine kleine Nachtschicht eingelegt und die Kuh vom Eis bekommen.
    Letztlich ähnelt meine Lösung der Vorgehensweise von Autobert (das mit iniread usw. habe ich nicht genutzt)

    Wenn es von Interesse sein sollte, kann ich ja das Script posten - einfach Bescheid geben (ist aber eigentlich nichts so Bewegendes - letztlich)

    Also nochmals DANKE

    mfg
    ugt100