Datei nach regionen auslesen

  • Hi com,

    ich habe eine frage, weil ich nicht verstehe, wieso 3mal dasselbe in der abfrage rauskommt, obwohl die array richtig ist (script unten, alles was ihr braucht im anhang)
    das kleine tool, was ich geschrieben habe, durchsucht eine datei gezielt nach regionen (ähnlich wie mit inis, nur au3s)
    hier mal der code:

    Include .au3 Files by its Regions
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    Global $AppsToInclude, $AppToInclude, $LastAppsToInclude
    If _FileReadToArray(@ScriptDir & "\Apps\Apps.sdb", $AppsToInclude) Then
    For $i = 1 To $AppsToInclude[0]
    If _FileReadToArray(@ScriptDir & "\Apps\" & $AppsToInclude[$i] & ".au3", $AppToInclude) Then
    _ArrayDisplay($AppToInclude)
    For $iI = 1 To $AppToInclude[0]
    If FileReadLine(@ScriptDir & "\Apps\" & $AppsToInclude[$i] & ".au3", $iI) = "#Region Includes" Then
    $AddAppPartInSideBarFile1 = ""
    $iiI = 0
    Do
    $iiI += 1
    $LineToAdd = FileReadLine(@ScriptDir & "\Apps\" & $AppsToInclude[$i] & ".au3", $iiI)
    If Not $LineToAdd = "#Region Includes" Or "#EndRegion" Then $AddAppPartInSideBarFile1 &= $LineToAdd & @CRLF
    Until $LineToAdd = "#EndRegion"
    MsgBox(0, "1", $AddAppPartInSideBarFile1)
    EndIf
    If FileReadLine(@ScriptDir & "\Apps\" & $AppsToInclude[$i] & ".au3", $iI) = "#Region Func" Then
    $AddAppPartInSideBarFile2 = ""
    $iiI = 0
    Do
    $iiI += 1
    $LineToAdd = FileReadLine(@ScriptDir & "\Apps\" & $AppsToInclude[$i] & ".au3", $iiI)
    If Not $LineToAdd = "#Region Func" Or "#EndRegion" Then $AddAppPartInSideBarFile2 &= $LineToAdd & @CRLF
    Until $LineToAdd = "#EndRegion"
    MsgBox(0, "2", $AddAppPartInSideBarFile2)
    EndIf
    If FileReadLine(@ScriptDir & "\Apps\" & $AppsToInclude[$i] & ".au3", $iI) = "#Region WhileSchleife" Then
    $AddAppPartInSideBarFile3 = ""
    $iiI = 0
    Do
    $iiI += 1
    $LineToAdd = FileReadLine(@ScriptDir & "\Apps\" & $AppsToInclude[$i] & ".au3", $iiI)
    If Not $LineToAdd = "#Region WhileSchleife" Or "#EndRegion" Then $AddAppPartInSideBarFile3 &= $LineToAdd & @CRLF
    Until $LineToAdd = "#EndRegion"
    MsgBox(0, "3", $AddAppPartInSideBarFile3)
    EndIf
    Next
    EndIf
    Next
    EndIf

    [/autoit]

    ich hoffe, ihr habt eine antwort (warscheinlich wieder nur so ein dummheitsfehler :thumbdown: )

  • danke oscar, aber das ändert nichts, es ist immernoch in allen drei abfragen dasselbe drin
    Edit1:
    habe den fehler gefunden, ich fange immer von vorne an und es endet immer nur bei endregion, das steht ja am anfang immer -.- wie ich vermutet hatte dummheitsfehler :thumbdown:
    trotzdem danke für deine hilfe, lösung kommt jetzt:

    Lösung Include .au3 Files by its Regions
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    Global $AppsToInclude, $AppToInclude, $LastAppsToInclude, $RegionStatus = False
    If _FileReadToArray(@ScriptDir & "\Apps\Apps.sdb", $AppsToInclude) Then
    For $i = 1 To $AppsToInclude[0]
    If _FileReadToArray(@ScriptDir & "\Apps\" & $AppsToInclude[$i] & ".au3", $AppToInclude) Then
    _ArrayDisplay($AppToInclude)
    For $iI = 1 To $AppToInclude[0]
    If $AppToInclude[$iI] = "#Region Includes" Then
    $AddAppPartInSideBarFile1 = ""
    $iiI = 0
    Do
    $iiI += 1
    $LineToAdd = $AppToInclude[$iiI]
    If $RegionStatus And $LineToAdd <> "#Region Includes" Or $LineToAdd <> "#EndRegion" Then $AddAppPartInSideBarFile1 &= $LineToAdd & @CRLF
    If $LineToAdd = "#Region Includes" Then $RegionStatus = True
    Until $LineToAdd = "#EndRegion"
    $RegionStatus = False
    MsgBox(0, "1", $AddAppPartInSideBarFile1)
    EndIf
    If $AppToInclude[$iI] = "#Region FuncStartUp" Then
    $AddAppPartInSideBarFile2 = ""
    Do
    $iiI += 1
    $LineToAdd = $AppToInclude[$iiI]
    If $RegionStatus And $LineToAdd <> "#Region FuncStartUp" Or $LineToAdd <> "#EndRegion" Then $AddAppPartInSideBarFile2 &= $LineToAdd & @CRLF
    If $LineToAdd = "#Region FuncStartUp" Then $RegionStatus = True
    Until $LineToAdd = "#EndRegion"
    $RegionStatus = False
    MsgBox(0, "2", $AddAppPartInSideBarFile2)
    EndIf
    If $AppToInclude[$iI] = "#Region Func" Then
    $AddAppPartInSideBarFile3 = ""
    Do
    $iiI += 1
    $LineToAdd = $AppToInclude[$iiI]
    If $RegionStatus And $LineToAdd <> "#Region Func" Or $LineToAdd <> "#EndRegion" Then $AddAppPartInSideBarFile3 &= $LineToAdd & @CRLF
    If $LineToAdd = "#Region Func" Then $RegionStatus = True
    Until $LineToAdd = "#EndRegion"
    $RegionStatus = False
    MsgBox(0, "3", $AddAppPartInSideBarFile3)
    EndIf
    If $AppToInclude[$iI] = "#Region WhileSchleife" Then
    $AddAppPartInSideBarFile4 = ""
    Do
    $iiI += 1
    $LineToAdd = $AppToInclude[$iiI]
    If $RegionStatus And $LineToAdd <> "#Region WhileSchleife" Or $LineToAdd <> "#EndRegion" Then $AddAppPartInSideBarFile4 &= $LineToAdd & @CRLF
    If $LineToAdd = "#Region WhileSchleife" Then $RegionStatus = True
    Until $LineToAdd = "#EndRegion"
    $RegionStatus = False
    MsgBox(0, "4", $AddAppPartInSideBarFile4)
    EndIf
    Next
    EndIf
    Next
    EndIf

    [/autoit]

    so funktioniert es, alerdings wirn noch etwas zwischen den regionen mitgenommen, ich werde das editieren, sobald ich es gefunden habe
    [gelößt] :thumbup:
    Edit2:
    Habe eine Region hinzugefügt, die brauchte ich eh noch, jetzt gehts ohne probleme ;) Spoiler edit!