Textdatein durchsuchen

  • Guten Abend,

    ich muss einige (über 5000) Textdatein nach einem bestimmten Text durchsuchen.

    Dazu habe ich mir im Scriptordner eine ini angelegt, in der jede Textdatei mit Namen eingetragen ist: (Auszug)

    [autoit]

    [nummer]
    1=pca.txt
    2=pcb.txt
    3=pcc.txt

    [/autoit]

    Beispiel für Inhalt der TXT:

    [autoit]

    =====================================
    Firefox Optimizer
    =====================================
    Option 5
    Option 6
    Option 7
    Option 9

    [/autoit]

    Dazu das folgende Script:

    [autoit]

    #include <file.au3>

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

    $nummer = 1

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

    While $nummer < 5172 ; Habe 5172 txts hier ^^

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

    $dateiname = Iniread(@ScriptDir & "\logs.ini", "nummer", $nummer, 0)

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

    Dim $aRecords
    If Not _FileReadToArray(@Scriptdir & $dateiname, $aRecords) Then
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei Fehler:" & @error)

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

    EndIf
    For $x = 1 To $aRecords[0]
    If (StringInStr($aRecords[$x], "SUCHE")) Then

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

    IniWrite("gefunden.ini","found", $nummer, $nummer)

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

    ExitLoop
    EndIf
    Next

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

    $nummer = $nummer + 1
    WEnd

    [/autoit]

    Beim ausführen erscheint immer:
    Fehler beim Einlesen der Datei Fehler 1

    Alle Datein (inis, txt und das Script) liegen im selben Verzeichnis

    • Offizieller Beitrag

    ungetestet:

    [autoit]

    Local $INIread = 'logs.ini'
    Local $INIwrite = 'gefunden.ini'
    Local $arINI = IniReadSection($INIread, 'nummer')
    Local $arFile
    For $i = 1 To UBound($arINI) -1
    _FileReadToArray(@ScriptDir & '\' & $arINI[$i][1], $arFile)
    If @error Then
    ConsoleWrite('@error: ' & @error & @TAB & $arINI[$i][1] & @CRLF)
    ContinueLoop
    EndIf
    For $j = 1 To UBound($arFile) -1
    If StringInStr($arFile[$j], 'SUCHE') Then
    IniWrite($INIwrite, 'found', $arINI[$i][0], $arINI[$i][0])
    EndIf
    Next
    Next

    [/autoit]
  • Hallo xanicel,

    Zeile 10 muss so aussehen

    [autoit]

    If Not _FileReadToArray($dateiname, $aRecords) Then

    [/autoit]

    da in $dateiname ja bereits der komplette Pfad (siehe Zeile 7)

    mfg (Auto)Bert

    • Offizieller Beitrag

    Hallo xanicel,

    Zeile 10 muss so aussehen

    [autoit]

    If Not _FileReadToArray($dateiname, $aRecords) Then

    [/autoit]

    da in $dateiname ja bereits der komplette Pfad (siehe Zeile 7)

    mfg (Auto)Bert

    In Zeile 7 wird nur der INI-Eintrag gelesen. Ohne Pfad. Dort ist doch nur der Pfad zur INI Datei angegeben