Problem beim Vergleich zweier Variabeln

10/21/2011 21:48 °"Crazy"°#1
Grüße!

Ich habe ein Problem beim Vergleich von 2 Variabeln. Ich habe es nun so gelöst, doch bekomm ich eine Errormeldung.

Code:
$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."

If $ver_old >= $ver_new Then
	$upd_nn
ElseIf $ver_old > $ver_new Then
	$upd_nwd
EndIf
$upd_nn und $upd_nwm werden in einem Label angezeigt. Je nachdem, was zuerst zutrifft.

Da mir google nichts hilfreiches zur Zeit ausspuckt, suche ich nun Rat bei Euch. Habe ich einen Fehler in dem Ding gemacht oder kann man dafür etwas besseres verwenden?

MfG
10/21/2011 21:58 .AppleTree.#2
Ich sehe nicht ganz was dir diese einzelne Variable im nirgendwo bringen soll wenn sie keinen bezug zu etwas anderem hat...
10/21/2011 21:59 °"Crazy"°#3
Code:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <string.au3>
#include <INet.au3>

$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."
$ver_old = IniRead("version.ini", "version", "version", "Core not found!")
/version.ini"), "[version]" , @CRLF)
$ver_new = _INetGetSource("http://secretgaming.de/trinity/version.ini")
_StringBetween($ver_new, "[version]", @CRLF)



If $ver_old >= $ver_new Then
	$upd_nn
Elseif $ver_old > $ver_new Then
	$upd_nwd
	EndIf
	


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Privatserver Updater", 620, 215, 433, 143)
$Combo1 = GUICtrlCreateCombo("TrinityCore", 208, 16, 201, 25)
$Label2 = GUICtrlCreateLabel("Ihre aktuelle Version", 128, 72, 116, 25)
$Label3 = GUICtrlCreateLabel("Verfügbare Version", 376, 72, 116, 25)
$Label4 = GUICtrlCreateLabel($ver_old, 144, 104, 84, 25)
$Label5 = GUICtrlCreateLabel($ver_new, 392, 104, 84, 25)
$Button1 = GUICtrlCreateButton("Update", 256, 176, 107, 33, $WS_GROUP)
$Label6 = GUICtrlCreateLabel("$update2", 168, 144, 276, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch

WEnd
Das ist zur Zeit mein Teilscript. Damit hast du den Bezug. ;)
10/21/2011 22:09 klavier22#4
If $ver_old >= $ver_new Then ;Falls $ver_old größer oder gleich Dann
$upd_nn ;tue bla
ElseIf $ver_old > $ver_new Then ; falls alte Version größer als neue Dann
$upd_nwd ;Bla
EndIf

Ich glaube, das erklärt, warum du deinen Fehler hast. Wenn das 1. zutrifft, trifft auch das 2. zu. besser wäre so:
PHP Code:
If $oldversion $NewVersion Then
MsgBox
(4096,"DU""KOMISCHER KAUTZ; DEINE TREIBER SIND ALT!")
ElseIf 
$OldVersion $NewVersion Then
MsgBox
(4096"DU" ,"OTTONORMALVERBRAUCHER; DEINE TREIBER SIND OK!")
ElseIf 
$OldVersion $NewVersion Then
MsgBox
(4096"Sehr lustig,""Deine Treiber sind neuer als die neueste Version. HAHA")
EndIf 
Außerdem hast du da auch einen Fehler:

PHP Code:
$ver_old IniRead("version.ini""version""version""Core not found!")
/
version.ini"), "[version]" , @CRLF) 
unter den includes...

weiterhin ist deine Neue Version ausleseVariante falsch, sie liest zwischen dem Header [Version] und dem Leerzeichen. Da eine .ini aber so aufgebaut ist:
PHP Code:
[Version]
Ver_New=3.1 
findet er ja automatisch nichts. Du mpsstest theoretisch
_StringBetween($ver_new, "Ver_New=", @CRLF)
machen
10/21/2011 22:10 .AppleTree.#5
@Klavier das Vergleichen ist schon korrekt fals du das gemeint hast.

Code:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <string.au3>
#include <INet.au3>

$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."
$ver_old = IniRead("version.ini", "version", "version", "Core not found!")
/version.ini"), [COLOR="Red"]"version"[/COLOR] , @CRLF)
$ver_new = _INetGetSource("http://secretgaming.de/trinity/version.ini")
_StringBetween($ver_new, [COLOR="red"]"version"[/COLOR], @CRLF)



If $ver_old >= $ver_new Then
	[COLOR="red"]GUICtrlSetData ($Label6, $upd_nnn)[/COLOR]
Elseif $ver_old > $ver_new Then
	[COLOR="Red"]GUICtrlSetData ($Label6, $upd_nwd)[/COLOR]
	EndIf
	


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Privatserver Updater", 620, 215, 433, 143)
$Combo1 = GUICtrlCreateCombo("TrinityCore", 208, 16, 201, 25)
$Label2 = GUICtrlCreateLabel("Ihre aktuelle Version", 128, 72, 116, 25)
$Label3 = GUICtrlCreateLabel("Verfügbare Version", 376, 72, 116, 25)
$Label4 = GUICtrlCreateLabel($ver_old, 144, 104, 84, 25)
$Label5 = GUICtrlCreateLabel($ver_new, 392, 104, 84, 25)
$Button1 = GUICtrlCreateButton("Update", 256, 176, 107, 33, $WS_GROUP)
$Label6 = GUICtrlCreateLabel($update2, 168, 144, 276, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch

WEnd
Bitte nenne alles bissel um in Sinvolle Variablen sonst sitzt du plötzlich stoned vorm PC und hast kp was geht^^
10/21/2011 22:24 °"Crazy"°#6
@klavier.

Beim 2. Fehler habe ich es hier gelöscht. Schon blöd, wenn man keine Farbe hier hat. Da hast du vollkommen recht.

Ansonsten möchte ich keine MsgBox haben, sondern es als Variable ausgespuckt haben. Besser ist es natürlich wie bei Creeper, nur ohne folgende Fehlermeldung:
Code:
GUICtrlSetData ($Label6, $upd_nnn)
GUICtrlSetData (^ ERROR
>Exit code: 1    Time: 1.025
@Creeper
Die Variablenamen ergebe bei mir Sinn. Man muss sie selbst verstehen können. ;)

Danke bisher von Euch beiden. :)


Edit:
Code:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <string.au3>
#include <INet.au3>

$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."
$ver_old = IniRead("version.ini", "version", "version", "Core not found!")

$ver_new = _INetGetSource("http://secretgaming.de/trinity/version.ini")
_StringBetween($ver_new, "version=", @CRLF)



If $ver_old >= $ver_new Then
	GUICtrlSetData ($Label6, $upd_nnn)
Elseif $ver_old < $ver_new Then
	GUICtrlSetData ($Label6, $upd_nwd)
	EndIf
	


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Privatserver Updater", 620, 215, 433, 143)
$Combo1 = GUICtrlCreateCombo("TrinityCore", 208, 16, 201, 25)
$Label2 = GUICtrlCreateLabel("Ihre aktuelle Version", 128, 72, 116, 25)
$Label3 = GUICtrlCreateLabel("Verfügbare Version", 376, 72, 116, 25)
$Label4 = GUICtrlCreateLabel($ver_old, 144, 104, 84, 25)
$Label5 = GUICtrlCreateLabel($ver_new, 392, 104, 84, 25)
$Button1 = GUICtrlCreateButton("Update", 256, 176, 107, 33, $WS_GROUP)
$Label6 = GUICtrlCreateLabel("Update2", 168, 144, 276, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch

WEnd
Nun alles eingesetzt. Doch beim Auslesen der Datei bekomme ich die ganze ini - Datei zurückgeworfen. Zudem der Fehler oben immernoch vorhanden. ;)
10/21/2011 22:39 .AppleTree.#7
habs nur flüchtig gemacht ohne zu testen deshalb der fehler :)
Das If zeug muss unter die Koda Section, weil zum oberen Zeitpunkt existiert $Label6 noch net^^ und du hast einen "n" zu viel:)
@ Klavier: das nennt man vergleichen und ansonsten stimmt If zeug eig abgesehen von der Pos
10/21/2011 22:41 °"Crazy"°#8
Ist ja egal, wie mans nennt. :P Ich mag halt nicht viel schreiben ^^

Code:
If $ver_old = $ver_new Then
	GUICtrlSetData ($Label6, $upd_nn)
Elseif $ver_old < $ver_new Then
	GUICtrlSetData ($Label6, $upd_nwd)
	EndIf
Das habe ich nun umgeändert für die richtige Logikfolge. Doch zeigt er mir nichts im Label an, was er eigentlich anzeigen sollte. Muss ich da noch was ändern?

MfG


//Edit
Fehler gefunden, Vorposter hat mir den entscheidenen Tipp gegeben. :)
10/21/2011 22:50 .AppleTree.#9
Wath happens?
Screen von der MsgBox pls?
Muss bald off
10/21/2011 22:56 .AppleTree.#10
mein Fehler;)
aber das hat noch probleme^^
10/21/2011 23:03 °"Crazy"°#11
Danke Dir vielmals. Zweite seite bis eben nicht entdeckt und war selbst noch am Umschreiben einiger Dinge.

Vielen lieben Dank. :)
10/21/2011 23:04 .AppleTree.#12
du hast den Fehler nicht gesehen weil ich gefailt hab, habs geeditet;)
€:Bin off ihr schafft das schon:)
10/22/2011 14:47 Emo!#13
$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."

If $ver_old = $ver_new Then
$upd_nn
EndIf
If $ver_old = $ver_new Then
$upd_nwd
EndIf

nicht

$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."

If $ver_old >= $ver_new Then
$upd_nn
ElseIf $ver_old > $ver_new Then
$upd_nwd
EndIf
10/22/2011 15:10 omer36#14
Quote:
Originally Posted by Emo! View Post
$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."

If $ver_old = $ver_new Then
$upd_nn
EndIf
If $ver_old = $ver_new Then
$upd_nwd
EndIf

nicht

$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."

If $ver_old >= $ver_new Then
$upd_nn
ElseIf $ver_old > $ver_new Then
$upd_nwd
EndIf
nichts gegen dich, aber bitte antworte nie auf fragen anderer, wenns um programmieren/scripten geht.
10/22/2011 15:21 °"Crazy"°#15
Quote:
Originally Posted by Emo! View Post
$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."

If $ver_old = $ver_new Then
$upd_nn
EndIf
If $ver_old = $ver_new Then
$upd_nwd
EndIf

nicht

$upd_nn = "Ihre Core ist auf dem aktuellsten Stand."
$upd_nwd = "Bitte updaten Sie Ihre Core."

If $ver_old >= $ver_new Then
$upd_nn
ElseIf $ver_old > $ver_new Then
$upd_nwd
EndIf
Bitte überdenke deinen Fehler. Die Vorposter haben aber meine Frage schon beantwortet. :)