Nabend
Ich habe gerade 2 Probleme bei meinem Script. Das eine äussert sich darin dass ich ein Array habe, bei welchem unter Umständen 2 mal der Gleiche Eintrag vorkommen kann. Kann man ein Array irgendwie nach Doppelten durchsuchen um diese dann rauszulöschen? Nebenbei habe ich das Problem dass er irgendwo beim Schreiben der Liste hängen bleibt und immer das gleiche schreibt, anstatt weiterzufahren. Hiermal das Script:
[autoit]#include <Array.au3>
#include <File.au3>
#include <FTP_Ex.au3>
#include <String.au3>
;Alte Liste löschen
FileDelete("Liste.txt")
;Ordner erstellen falls keine Unterordner vorhanden sein sollten
DirCreate("E:\Benutzer\Ahatius\Eigene Videos\Movies\zz")
DirCreate("F:\Benutzer\Ahatius\Eigene Videos\Serien\zz")
DirCreate("F:\Benutzer\Ahatius\Programme\Games\zz")
DirCreate("F:\Benutzer\Ahatius\Programme\Applikationen\zz")
;Neue Listendatei erstellen
$Liste = FileOpen("Liste.txt", 1)
;Daten zusammentragen
$Movies = _FileListToArray("E:\Benutzer\Ahatius\Eigene Videos\Movies", "*", 2)
$Movies2 = _FileListToArray("F:\Benutzer\Ahatius\Eigene Videos\Movies", "*", 2)
$Serien = _FileListToArray("E:\Benutzer\Ahatius\Eigene Videos\Serien", "*", 2)
$Serien2 = _FileListToArray("F:\Benutzer\Ahatius\Eigene Videos\Serien", "*", 2)
$Games = _FileListToArray("E:\Benutzer\Ahatius\Programme\Games", "*", 2)
$Games2 = _FileListToArray("F:\Benutzer\Ahatius\Programme\Games", "*", 2)
$Applikationen = _FileListToArray("E:\Benutzer\Ahatius\Programme\Applikationen", "*", 2)
$Applikationen2 = _FileListToArray("F:\Benutzer\Ahatius\Programme\Applikationen", "*", 2)
;Erstes Array rauslöschen
_ArrayDelete($Movies, 0)
_ArrayDelete($Movies2, 0)
_ArrayDelete($Serien, 0)
_ArrayDelete($Serien2, 0)
_ArrayDelete($Games, 0)
_ArrayDelete($Games2, 0)
_ArrayDelete($Applikationen, 0)
_ArrayDelete($Applikationen2, 0)
;Arrays zusammenfügen
_ArrayConcatenate($Movies, $Movies2)
_ArrayConcatenate($Serien, $Serien2) ;Ab diesem Zeitpunkt enthält das Array $Serien doppelte Einträge
_ArrayConcatenate($Games, $Games2)
_ArrayConcatenate($Applikationen, $Applikationen2)
;Arrays sortieren
_ArraySort($Movies)
_ArraySort($Serien)
_ArraySort($Games)
_ArraySort($Applikationen)
;Anzahl der Ordner definieren
$AnzahlMovies = UBound($Movies) -2
$AnzahlSerien = UBound($Serien) -2
$AnzahlGames = UBound($Games) -2
$AnzahlApplikationen = UBound($Applikationen) -2
;Filme schreiben
FileWrite($Liste, "<b><font size=4><u>Filme</u></b></font><br/><br/>")
For $i = 0 to $AnzahlMovies
FileWrite($Liste, $Movies[$i] & "<br/>")
Next
FileWrite($Liste, "-----<br/>Anzahl Filme: " & $AnzahlMovies & "<br/><br/><b><font size=4>==============================</font></b><br/><br/>")
;Serien schreiben
FileWrite($Liste, "<b><font size=4><u>Serien</u></b></font><br/><br/>")
For $i = 0 to $AnzahlSerien
FileWrite($Liste, $Serien[$i] & "<br/>")
$CheckStaffeln = 1
$CheckStaffeln2 = 1
$Staffeln = _FileListToArray("E:\Benutzer\Ahatius\Eigene Videos\Serien\" & $Serien[$i], "*", 2)
If @error then $CheckStaffeln = 0 ;Wird auf 0 gesetzt falls der Ordner unter diesem Pfad nicht existiert
$Staffeln2 = _FileListToArray("F:\Benutzer\Ahatius\Eigene Videos\Serien\" & $Serien[$i], "*", 2)
If @error then $CheckStaffeln2 = 0 ;Wird auf 0 gesetzt falls der Ordner unter diesem Pfad nicht existiert
If $CheckStaffeln = 1 And $CheckStaffeln2 = 1 Then ;Dieses Szenario tritt genau einmal auf, allerdings hat er bei diesem Szenario kein Problem
_ArrayDelete($Staffeln, 0)
_ArrayDelete($Staffeln2, 0)
_ArrayConcatenate($Staffeln, $Staffeln2)
_ArraySort($Staffeln)
$AnzahlStaffeln = UBound($Staffeln) - 1
For $i = 0 to $AnzahlStaffeln
FileWrite($Liste, $Staffeln[$i] & "<br/>")
Next
ElseIf $CheckStaffeln = 1 And $Checkstaffeln2 = 0 Then ;Dieses Szenario trifft in 99% aller Fälle ein. Bei den ersten Paar Ordner die er schreibt klappts. Allerdings hängt er sich bei immer dem gleichen Ordner auf
_ArrayDelete($Staffeln, 0)
_ArraySort($Staffeln)
$AnzahlStaffeln = UBound($Staffeln) - 1
For $i = 0 to $AnzahlStaffeln
FileWrite($Liste, $Staffeln[$i] & "<br/>")
Next
ElseIf $CheckStaffeln = 0 And $CheckStaffeln2 = 1 Then ;Dieses Szenario existiert noch nicht, daher auch noch nicht getestet
_ArrayDelete($Staffeln2, 0)
_ArraySort($Staffeln2)
$AnzahlStaffeln = Ubound($Staffeln2) - 1
For $i = 0 to $AnzahlStaffeln
FileWrite($Liste, $Staffeln2[$i] & "<br/>")
Next
EndIf
Next
;Games schreiben
FileWrite($Liste, "<b><font size=4><u>Games</u></b></font><br/><br/>")
For $i = 0 to $AnzahlGames
FileWrite($Liste, $Games[$i] & "<br/>")
Next
FileWrite($Liste, "-----<br/>Anzahl Games: " & $AnzahlGames & "<br/><br/><b><font size=4>==============================</font></b><br/><br/>")
;Applikationen schreiben
FileWrite($Liste, "<b><font size=4><u>Applikationen</u></b></font><br/><br/>")
For $i = 0 to $AnzahlApplikationen
FileWrite($Liste, $Applikationen[$i] & "<br/>")
Next
FileWrite($Liste, "-------------<br/>Anzahl Applikationen: " & $AnzahlApplikationen & "<br/><br/><b><font size=4>==============================</font></b><br/><br/>")
;Zeitstempel
FileWrite($Liste, "Generiert am " & @MDAY & "." & @MON & "." & @YEAR & " um " & @HOUR & ":" & @MIN & ":" & @SEC & " Uhr.<br/><br/>")
;Erstellte Ordner löschen
DirRemove("E:\Benutzer\Ahatius\Eigene Videos\Movies\zz")
DirRemove("E:\Benutzer\Ahatius\Eigene Videos\Serien\zz")
DirRemove("F:\Benutzer\Ahatius\Programme\Games\zz")
DirRemove("F:\Benutzer\Ahatius\Programme\Applikationen\zz")
;Zugriff auf Datei schliessen
FileClose($Liste)
;Upload der Liste
$server = "host"
$username = "user"
$pass = _StringEncrypt(0, "12345", "12345")
$Open = _FTPOpen("Upload Liste")
$Conn = _FTPConnect($Open, $server, $username, $pass, True)
$Ftpp = _FtpPutFile($Conn, "Liste.txt", "Pfad/Liste.txt")