Hey Leute,
Ich hab hier mal eine kleine udf:
mit der udf lassen sich daten auf existenz überprüfen und auch downloaden.
Findet gebrauch um für programme erforderlich daten zu prüfen (eure scripts)
ich stells hier mal rein um verbesserungsvorschläge + bugs zu erhalten
Funktionen & Beschreibung:
Spoiler anzeigen
_filecheck($filename) ; $filename = Dateiname der Liste mit den zu überprüfenden Daten.
_filecheck_listcreate($filename, $files, $url) ;$filename = Name der Datei die die zu prüfenden Dateien beinhaltet. , $files= Dateien die überprüftwerden sollen, $url = url zum download ort der Datei(erste url wird erster datei zugeordnet, usw...)
_filecheck_download($filename, $missing) ;$filename = siehe oben, $missing = fehlende dateien (werden von _filecheck() zurückgegeben)
Source: V1.1 :
Spoiler anzeigen
#include <File.au3>
;####Filecheck by YellowWeedSeed####
;beliebig änderbar solange es nicht als Eigen ausgegeben wird
;~####Errorcodes:####
[/autoit] [autoit][/autoit] [autoit];_____________________________________________________________
;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
;#~ -1 = Fehler beim öffnen der Datei ~#
;#~ -2 = Fehler beim zählen der Zeilen ~#
;#~ -3 = $file[$i] ist kein array ~#
;#~ -4 = Fehler beim auslesen einer zeile in der Datei ~#
;#~ -10 = String enthält keine dateien ~#
;#~ -11 = Zeile konnte nicht beschrieben werden ~#
;#~ -12 = Datei existiert bereits ~#
;#~ -13 = Zeile enthält kein Dateiname ~#
;#~ -14 = Zeile enthält keine Endung ~#
;#~ -15 = $miss ist kein Array ~#
;#~ -16 = $miss enthält keine Dateien ~#
;#~ -17 = Fehler beim downloaden der Datei ~#
;#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
;_____________________________________________________________
Func _filecheck($filename)
[/autoit] [autoit][/autoit] [autoit]$checksum = 0
$miss = "missing Files: "
$open = FileOpen($filename, 0)
If @error Then Return -1
$number = _FileCountLines($filename)
If @error Then Return -2
$x = $number + 1
Dim $file[$x]
Dim $file2[$x]
Dim $string[$x]
Dim $instr[$x]
If Not IsArray($file) Then Return -3
[/autoit] [autoit][/autoit] [autoit]For $y = 0 To $number - 1
[/autoit] [autoit][/autoit] [autoit]$file2[$y] = FileReadLine($open, ($y + 1))
[/autoit] [autoit][/autoit] [autoit]If $file2[$y] = "" Then Return $y + 1 & "_1"
[/autoit] [autoit][/autoit] [autoit]$instr[$y] = StringInStr($file2[$y], "|")
[/autoit] [autoit][/autoit] [autoit]If $instr[$y] = 0 Then Return $y + 1 & "_2"
[/autoit] [autoit][/autoit] [autoit]$split1 = StringSplit($file2[$y], "|")
$string[$y] = StringInStr($split1[1], '.')
If $split1[2] = "" Then Return $y + 1 & "_3"
If $string[$y] = 0 Then Return -14
Next
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To $number - 1
$i2 = $i + 1
$file[$i] = FileReadLine($open, $i2)
If @error Then Return -4
$split2 = StringSplit($file[$i], "|")
If Not FileExists($split2[1]) Then
$miss &= ("°" & $split2[1])
ElseIf FileExists($split2[1]) Then
$checksum += 1
EndIf
Next
If $checksum = $number Then
Return 1
ElseIf $checksum < $number Then
Return $miss
EndIf
FileClose($filename)
EndFunc ;==>_filecheck
Func _filecheck_listcreate($filename, $files_2, $url)
If Not FileExists($filename) Then
FileWrite($filename, "")
$a = StringSplit($files_2, "°")
If Not IsArray($a) Then Return -10
If Not StringInStr($url, "°") = 0 Then
$c = StringSplit($url, "°")
Else
$c = $url
EndIf
For $o = 1 To $a[0]
_FileWriteToLine($filename, $o, $a[$o] & "|" & $c[$o])
If @error Then Return -11
Next
Return 1
Else
Return -12
EndIf
EndFunc ;==>_filecheck_listcreate
Func _filecheck_download($filename, $miss, $url)
$fail = "failed downloads:"
$download = StringSplit($miss, "°")
If Not IsArray($download) Then Return -15
$dim = UBound($download)
If $dim > 2 Then Return -16
For $z = 1 To $dim - 1
InetGet($url, $download[$z])
If @error Then $fail &= "°" & $download[$z]
Next
If Not $fail = "failed downloads:" Then
Return $fail
Else
Return 1
EndIf
EndFunc ;==>_filecheck_download
[/autoit]Es ist mein erstes Release hier, bitte nicht zu streng sein xD
Kritik ist gern gesehen!!
mfg Yellow