Hey Leute,
ich hab ein kleines Problem mit meinem Script:
Es funktioniert super, doch leider bekomme ich nach einiger Zeit immer folgenden Error:
[Blockierte Grafik: http://www.bilder-upload.eu/thumb/5d90c3-1334161402.png]
hier das Script:
Spoiler anzeigen
#include <File.au3>
#include <Array.au3>
#include <ID3.au3>
#include <GUIConstantsEx.au3>
#include <GUIListView.au3>
#include <GuiToolbar.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
Func _LoadVars($flag)
[/autoit] [autoit][/autoit] [autoit]Switch $flag
Case 1
Global $startfile = @ScriptDir & "\settings.cfg"
Global $open = FileOpen($startfile)
Global $option_1 = StringSplit(FileReadLine($open, 1), "=")
Global $option_2 = StringSplit(FileReadLine($open, 2), "=")
Global $path = StringTrimLeft($option_2[2], 1)
Global $mp3_Files = 0
Global $dir_Files = 0
;~------------------------------------------------GUI--------------------------------------------------------------------------~;
Global $GUI = GUICreate("Sync!", 800, 500, 190, 120)
Global $listview1 = GUICtrlCreateListView("Titel|Name", 44, 100, 304, 320)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150)
_GUICtrlListView_JustifyColumn(GUICtrlGetHandle($listview1), 0, 2)
_GUICtrlListView_JustifyColumn(GUICtrlGetHandle($listview1), 1, 2)
Global $listview2 = GUICtrlCreateListView("Titel|Name", 374, 100, 304, 320)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150)
_GUICtrlListView_JustifyColumn(GUICtrlGetHandle($listview2), 0, 2)
_GUICtrlListView_JustifyColumn(GUICtrlGetHandle($listview2), 1, 2)
Global $Button1 = GUICtrlCreateButton("", 12, 8, 30, 30, BitOR($BS_BITMAP, $BS_DEFPUSHBUTTON))
GUICtrlSetImage(-1, "connect.bmp")
Global $Button2 = GUICtrlCreateButton("", 44, 8, 30, 30, $WS_GROUP)
Global $Button3 = GUICtrlCreateButton("", 76, 8, 30, 30, $WS_GROUP)
Global $Button4 = GUICtrlCreateButton("", 108, 8, 30, 30, $WS_GROUP)
Global $Button5 = GUICtrlCreateButton("", 140, 8, 30, 30, $WS_GROUP)
Global $Button6 = GUICtrlCreateButton("", 172, 8, 30, 30, $WS_GROUP)
;Global $Pic1 = GUICtrlCreatePic("toolbar.BMP", 4, 4, 205, 37, $WS_CLIPSIBLINGS)
;~----------------------------------------------GUI-END------------------------------------------------------------------------~;
Case 2
Global $option_1 = StringSplit(FileReadLine($open, 1), "=")
Global $option_2 = StringSplit(FileReadLine($open, 2), "=")
EndSwitch
EndFunc ;==>_LoadVars
Func _FirstRun()
$drive = FileSelectFolder("Select your current music-dir!", @HomeDrive & "\Users\" & @UserName & "\", BitOR(1, 4))
_FileWriteToLine($startfile, 2, "music-dir = " & $drive & "\", 1)
_FileWriteToLine($startfile, 1, "first run = false", 1)
EndFunc ;==>_FirstRun
_LoadVars(1)
[/autoit] [autoit][/autoit] [autoit]If $option_1[2] = " true" Then _FirstRun()
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$files = _FileListToArray($path)
For $a = 1 To $files[0]
If StringInStr($files[$a], ".mp3") Then
$mp3_Files += 1
Else
$dir_Files += 1
EndIf
Next
Local $tag[$mp3_Files + $dir_Files + 1]
[/autoit] [autoit][/autoit] [autoit]For $b = 1 To $files[0]
If Not StringInStr($files[$b], ".jpg") Or StringInStr($files[$b], ".jpeg") Then
_ID3ReadTag($path & $files[$b])
$tag[$b] = _ID3GetTagField("TIT2")
If @error Then
$tag[$b] = _ID3GetTagField("Title")
If @error Then
$tag[$b] = StringTrimRight($files[$b], 4)
EndIf
EndIf
EndIf
Next
msgBox(0, "", "habe fertig!!! :D")
For $c = 1 To (UBound($tag) + 1)
_GUICtrlListView_AddItem($listview1, $tag[$c])
Next
EndSwitch
WEnd
FileClose($open)
Exit
Das Script funktioniert, aber wie gesagt ich bekomme immer diesen error.
Ich habe 8 GigaByte RAM, beim gesammten durchlauf des scriptes bis zum error beträgt die Maximalauslastung max. 22%
es werden ca. 300 Lied-Dateien auf ihre Titel geprüft und anschliessend in die Listview eingefügt.
Im Anhang die ID3.au3
€: Der Error kommt genau nach der 220ten Datei, wenn ich sie lösche geht es :wacko:
Ich hoffe ihr könnt mir helfen.
Bekommt eigentlich noch irgendjemand anderes den Fehler?
mfg Yellow