*.txt Dateien aus Ordner auslesen und in einer Textdatei speichern

  • Hi Leute ^^

    Ich benötige mal wieder hilfe, da ich im ganzen forum, sowie bei google net fündig geworden bin ^^

    Über Textdateien gibt es ja etliche beiträge hier im Forum, aber wie um alles in der Welt kann man es anstellen,
    dass Autoit einen ordner mit etlichen *.txt dateien ausliest und diese dann in einer TXT vereint?

    Ich habe hier schonmal nen ansatz gefunden -> _FileListToArray3
    Bsp: $list = _FileListToArray3("received\", "*.txt", 1, 1, 1, "", 1)
    (Datei als Anhang dabei, falls hilfreich)
    Sollte es ne einfachere möglichkeit geben, bin ich dafür selbstverständlich offen und Dankbar!

    bye,

    nesaja

    Einmal editiert, zuletzt von nesaja (6. März 2009 um 00:51)

    • Offizieller Beitrag

    Mit dem _FileListToArray aus den UDFs klappt das doch auch:

    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    $sOut = ''
    $aFiles = _FileListToArray(@ScriptDir & '\received\', '*.txt', 1)
    If Not @error Then
    For $i = 1 To $aFiles[0]
    $sOut &= FileRead($aFiles[$i])
    Next
    $hFile = FileOpen(@ScriptDir & '\TextAll.txt', 2)
    If $hFile <> -1 Then
    FileWrite($hFile, $sOut)
    FileClose($hFile)
    EndIf
    EndIf

    [/autoit]


    Oder falls die Textdateien sehr groß sind und Du sie nicht im RAM zwischenspeichern kannst/willst:

    Spoiler anzeigen
    [autoit]


    #include <File.au3>
    $aFiles = _FileListToArray(@ScriptDir & '\received\', '*.txt', 1)
    If Not @error Then
    $hFile = FileOpen(@ScriptDir & '\TextAll.txt', 2)
    If $hFile <> -1 Then
    For $i = 1 To $aFiles[0]
    FileWrite($hFile, FileRead($aFiles[$i]))
    Next
    FileClose($hFile)
    EndIf
    EndIf

    [/autoit]

    Oder meinst Du rekursiv, also auch in den Unterordnern von "received"?

  • hi,

    iwie nimmt findet er die txt dateien im received ordner nicht :/ wenn ich '\received\' entferne und in dem ordner direkt ausführe, dann gehts, allerdings sollte er schon received als unterordner zum einlesen der files benutzen ^^

    mfg,

    nesaja

  • z. B. so:

    Hauptordner:
    c:\Programme\Mcfly\
    Das Script:
    c:\Programme\Mcfly\das_tolle_script.au3
    Der Ordner mit den Txt-files:
    c:\Programme\Mcfly\received\
    únd so sieht ca. ne txt-beschriftung aus:
    c:\Programme\Mcfly\received\hff_erl_534151051863outgh_hs@@14424800.txt
    Gespeuchert soll es schließlich dort:
    c:\Programme\Mcfly\textall.txt

    mfg,

    Matze

    EDIT:
    Es geht nicht, weil die bezeichnungen der txt zu lang sind, und sobald eine in dem ordner zu lang ist, bricht er ab und speichert eine leere textall.txt :/
    bei kurzen geht es! lässt sich das ändern?

    Einmal editiert, zuletzt von nesaja (11. März 2009 um 22:19)