He Leute, ich habe wieder ein Problem mit meinem Synchronisationsprogramm.
Und zwar soll das Tool eine ini vom Server herunterladen und die beiden ini's vergleichen und je nachdem dann updaten oder nicht.
So, jetzt ist das Problem, dass die ini datei auf dem server die version 2 hat und die andere die version 1 aber trotzdem behauptet das programm, die versionen wären beide gleich.
Und das Programm erstellt noch eine Datei 0 ohne Endung.
Hier ist der Quellcode(teilweise zensiert, passwörter für server etc.)
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <FTPex.au3>
FileDelete(@TempDir + "\serverversion.ini")
MsgBox(0,"",$test)
Global $possible = 1
Global $disabled = 0
Global $status = "ready"
Global $newstatus = 1
Global $serveron = 0
Global $FTPUser = '###', $FTPPass = '###', $FTPServer = '###'
$Minesync = GUICreate("Minesync", 428, 195, 209, 134,$WS_CAPTION)
$Label1 = GUICtrlCreateLabel("Lädt Minesync...", 24, 8, 358, 52)
GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
$Button1 = GUICtrlCreateButton("Abbrechen", 8, 64, 401, 121, $WS_GROUP)
GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button1
Exit
EndSwitch
if $possible = 0 Then
if $disabled = 0 Then
GUICtrlSetState($Button1,$GUI_DISABLE)
$disabled = 1
EndIf
ElseIf $possible = 1 Then
if $disabled = 1 Then
GUICtrlSetState($Button1,$GUI_ENABLE)
$disabled = 0
EndIf
EndIf
if $newstatus = 1 Then
if $status = "checkversion" or "waitcancel" Then
GUICtrlSetData($Label1,"Überprüfe Version...")
$newstatus = 0
Elseif $status = "sync" Then
GUICtrlSetData($Label1,"Synchronisieren...")
$newstatus = 0
EndIf
EndIf
if $status = "ready" Then
$status = "checkversion"
ElseIf $status = "checkversion" Then
GUICtrlSetState($Button1,$GUI_DISABLE)
Global $file = 'serverversion.ini'
Global $ziel = @TempDir + "\"
Global $hFTPOpen = _FTP_Open('FTP Control')
Global $hFTPConn = _FTP_Connect($hFTPOpen, $FTPServer, $FTPUser, $FTPPass)
_FTP_FileGet($hFTPConn,$file,$ziel,True)
$versionserver = IniRead(@TempDir + "\serverversion.ini","server","version","notfound")
$versionclient = IniRead(@AutoItExe + "\minesynctestserver\thisversion.ini","server","version","notfound")
if $versionclient = "notfound" or $versionserver = "notfound" Then
MsgBox(0,"FEHLER","ini fehlerhaft")
_FTP_Close($hFTPOpen)
Exit
EndIf
if $versionclient < $versionserver Then
GUICtrlSetState($Button1,$GUI_ENABLE)
$status = "waitcancel"
$canceltimer = TimerInit()
ElseIf $versionclient > $versionserver Then
MsgBox(0,"FEHLER","Die Version im Client ist neuer als die im Server, das heißt der Upload wurde abgebrochen")
_FTP_Close($hFTPOpen)
Exit
ElseIf $versionclient = $versionclient Then
$status = "startserver"
EndIf
ElseIf $status = "waitcancel" Then
if $canceltimer > 3000 Then
MsgBox(0,"TEST","Hier kommt dann die Synchronisation hin")
_FTP_Close($hFTPOpen)
Exit
EndIf
ElseIf $status = "startserver" Then
MsgBox(0,"TEST","Das passiert, wenn die versionen übereinstimmen!")
_FTP_Close($hFTPOpen)
Exit
EndIf
WEnd
Hier sind die beiden ini dateien
Danke für eure Hilfe im Vorraus
Mfg Fliwatt