Aloha liebe commies
ich hab da ma wieder ein kleines Problem was ich nicht gelöst bekomme
Bei diesem Stück programm
Spoiler anzeigen
Func test ($avArray, $FullFilePath)
[/autoit] [autoit][/autoit] [autoit]if FileExists ($Stoptext) then
[/autoit] [autoit][/autoit] [autoit]$Stopfile = fileopen ($Stoptext,0)
$avArray[$used][1] = $Stopfile
endif
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit]kommt diese Meldung
Spoiler anzeigen
"E:\Ordnerdurchsuchungsprogramm\test.au3 (92) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
$avArray[$used][1] = $Stopfile
^ ERROR"
Da ich einfach keinen Fehler entdecken kann woran es liegen kann, denke ich mal, ich übersehe ihn
Alle Variablen die in dem Stück programmcode vorhanden sind, sind deklariert.
Der Sinn des stück codes soll sein, dass es im aktuellen verzeichnis überprüfen soll ob eine bestimmte -in diesem fall - textdatei vorhanden ist und den inhalt dieser in die 2te dimension des arrays schreiben.
Hoffe ihr könnt mir helfen, wenn ihr mehr informationen braucht, sagt bitte bescheid, editiere dann flott.
Vielen Dank und Grüße
Maurawani
EDIT:
Hier mal der ganze Code
Spoiler anzeigen
;Mit Hilfe einiger user von http://www.autoit.de Forum umgesetzt, vielen Dank an Fabian, progandy und ideas2code.
;==========================================================================================================
;Recursive File Lister
#include <Array.au3>
#include <Date.au3>
#include <file.au3>
;Main Programmm anfang
;deklaration der variablen
Dim $FolderName = "E:\Autoit_testordner" ;Sagt welcher Ort zu durchsuchen ist
Dim $FileCount = 0 ;setzt den zähler auf 0
Dim $zeile = 10 ;setzen von size auf 10
Dim $used = 0 ;setzen von used auf 0
Dim $blocksize = 1 ;setzen von blocksize auf 1
Dim $spalte = 2 ;setzen der spaltenanzahl auf 2
Dim $avArray[$zeile][$spalte] ;erstellen eines arrays mit größe size und 2 spalte
Dim $stop = "\STOPFILE.txt"
Dim $Stoptext
ScanFolder($FolderName) ;startet die durchsuchung des ortes
MakeIndexFile($avArray) ;aufrufen von MakeIndexFile
_ArrayDisplay($avArray, "Arrayinhalt") ;zeigt Fenster mit Arrayinhalt
MsgBox(0, "Done", "Folder Scan Complete. Scanned " & $FileCount & " Files") ;Ausgabebox mit Meldung das durchsuchung fertig ist und wieviele dateien/ordner gefunden wurden
;Main Programm ende
[/autoit] [autoit][/autoit] [autoit];beginn des durchsuchungvorganges
Func ScanFolder($SourceFolder)
Local $Search
Local $File
Local $FileAttributes
Local $FullFilePath
;schleife zur überprüfung der arraygröße
If $used = $zeile Then ;wenn used gleich zeile und spalte ist
$zeile = $zeile + $blocksize ;erweitern von size um blocksize
ReDim $avArray[$zeile][$spalte] ;vergrößern des arrays
EndIf
;schleifenende
;überprüfung ob sourcefolder schon vorhanden ist
$avArray[$used][0] = $SourceFolder ;wenn arrayposition gleich SourceFolder ist
$used = $used + 1 ;erweiter used um 1
;überprüfung ende
$Stoptext = $SourceFolder & $stop
$Search = FileFindFirstFile($SourceFolder & "\*.*") ;finde erste datei
;schleifenbeginn zum durchsuchen der ordner und schreiben in eine txt datei
While 1
If $Search = -1 Then ;wenn search nichts vorhanden ist dann
ExitLoop ;dann verlasse schleife
EndIf
$File = FileFindNextFile($Search) ;nächste file finden
If @error Then ExitLoop ;fehler = schleife verlassen
$FullFilePath = $SourceFolder & "\" & $File ;zusammensetzen des pfades der datei
$FileAttributes = FileGetAttrib($FullFilePath) ;attribute abfragen
If StringInStr($FileAttributes, "D") Then ;überprüfe FileAttributes, wenn D(irectory) dann
ScanFolder($FullFilePath) ;springe zu ScanFolder (schleife von vorne)
Else
LogFile($FullFilePath) ;gehe zu LogFile
test($avArray, $FullFilePath)
EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]WEnd
;schleifenende
FileClose($Search)
EndFunc
;ende des durchsuchungvorganges
[/autoit] [autoit][/autoit] [autoit];beginn des vorganges zum schreiben in eine txt datei
Func LogFile($FileName)
FileWriteLine(@ScriptDir & "\FileList.txt", $FileName) ;Schreibe in Filelist.txt FileName
$FileCount += 1 ;erhöhe FileCount um 1
EndFunc
;ende des vorganges zum schreiben in eine txt datei
Func test ($avArray, $FullFilePath)
[/autoit] [autoit][/autoit] [autoit]if FileExists ($Stoptext) then
[/autoit] [autoit][/autoit] [autoit]$Stopfile = fileopen ($Stoptext,0)
$avArray[$used][1] = $Stopfile
endif
EndFunc
[/autoit] [autoit][/autoit] [autoit];beginn der erstellung einer HMTL datei mit Verlinkung zum Directory
Func MakeIndexFile($avArray)
Local $pos = 0
Local $pos2 = 0
Local $Nr = 1
Local $Nr2 = 1
Local $sType = 4
$html = FileOpen(@ScriptDir & "\filelist.html", 2) ;Datei wird im Schreibmodus geöffnet, aktueller Inhalt wird gelöscht. Wenn die Datei nicht existiert wird sie erstellt.
FileWriteLine(@ScriptDir & "\filelist.html", "<html>")
FileWriteLine(@ScriptDir & "\filelist.html", "<head>")
FileWriteLine(@ScriptDir & "\filelist.html", "<title>")
FileWriteLine(@ScriptDir & "\filelist.html", "Laufwerkstand von " & $FolderName & " zuletzt ausgelesen am: " & _NowDate() & " um " & _NowTime($sType) & "</title>")
FileWriteLine(@ScriptDir & "\filelist.html", "</head>")
FileWriteLine(@ScriptDir & "\filelist.html", "<body bgcolor=" & '"' & '#' & "218429" & '"' & ">")
FileWriteLine(@ScriptDir & "\filelist.html", "<p>" & "<font color=" & '"' & "#" & "FFFFFF" & '"' & ">" & "<B>" & "<TT>" & "<Font size =+2" & ">" & "Laufwerkstand von " & $FolderName & " zuletzt ausgelesen am: " & _NowDate() & " um " & _NowTime($sType) & "</font>" & "</TT>" & "<br>" & "</p>")
FileWriteLine(@ScriptDir & "\filelist.html", "<table border=" & '"1"' & ">" & "<tr>" & "<th>" & "Nr." & "</th>" & "<th>" & "Pfad" & "</th>" & "<th>" & " Öffnen" & "</th>" & "<th>" & "Ändern" & "</th>" & "</tr>")
For $pos = 0 To UBound($avArray) - 1 ;forschleife zum auslesen des arrays
FileWriteLine(@ScriptDir & "\filelist.html", "<p>" & "<tr>" & "<td>" & "<font color=" & '"' & "#" & "FFFFFF" & '"' & ">" & $Nr & ")" & "</td>" & "<td>" & "<font color=" & '"' & "#" & "FFFFFF" & '"' & ">" & $avArray[$pos][0] & "</td>" & "<td>" & "</font>" & "<a href=" & '"' & '#' & "AnkerNr" & $Nr & '"' & ">" & "<img src=" & '"' & "Folder_open.GIF" & '"' & "alt=" & '"' & "Open" & '"' & ">" & "</a>" & "</td>" & "<td>" & "<a href=" & '"' & $avArray[$pos][0] & '"' & ">" & "<img src=" & '"' & "Change_symbol.GIF" & '"' & "alt=" & '"' & "Change" & '"' & ">" & "</a>" & "</td>" & "</tr>" & "<p>")
$Nr = $Nr + 1
Next
FileWriteLine(@ScriptDir & "\filelist.html", "</table>")
FileWriteLine(@ScriptDir & "\filelist.html", "<br>" & "<br>" & "<br>" & "<br>" & "<br>")
;teil zum erstellen der detailanzeige
FileWriteLine(@ScriptDir & "\filelist.html", "<B>" & "<big>" & "Übersicht" & "</B>" & "</big>")
For $pos = 0 To UBound($avArray) -1
FileWriteLine(@ScriptDir & "\filelist.html", "<p align=" & '"' & "left" & '"' & ">" & "<b>" & "<font color=" & '"' & "#" & "FFFFFF" & '"' & ">" & "<a name=" & '"' & "AnkerNr" & $Nr2 & '"' & ">" & $avArray[$pos][0] & "</a>" & "</b>" & "<br>")
$Nr2 = $Nr2 + 1
Next
;ende erstellung der detailanzeige
[/autoit] [autoit][/autoit] [autoit]FileWriteLine(@ScriptDir & "\filelist.html", "</body>")
FileWriteLine(@ScriptDir & "\filelist.html", "</html>")
FileClose($html)
EndFunc
;ende der erstellung