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?
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
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
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:
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
du kannst die Variablen auch ruhig $OldVersion und $NewVersion nennen versteht jeder besser.
AUßerdem ist das vergleichen nicht korrekt.
er schaut, ob die alte version neuer ist oder die gleiche ist wie die neue und wenn das zutrifft, sagt er, man habe die neueste.
wenn es nicht zutrifft, guckt er, ob die OldVerion höher ist als die neue - was ja garnicht zutreffen kann. Schau dir die Bedingungen der If Schleife nochmal an, die sind definitiv falsch...ich habs noch mal simpel gemacht, darauf solltest du aufbauen:
If $OldVersion = "Core not found!" Then Exit MsgBox(4096, "", "Version.ini nicht gefunden!")
If $OldVersion < $NewVersion Then MsgBox(4096, "", "Neuere Version vorhanden!") Elseif $OldVersion = $NewVersion Then MsgBox(4096, "", "Sie haben die neueste Version!") Elseif $OldVersion > $NewVersion Then MsgBox(4096, "", "Wahnsinn! Ihre Version ist neuer als die neueste xD!") EndIf
Was ansonsten bei dir noch war:
mit $Bla = "asdf" setzt du die Variable $Bla (welche damit auch deklariert wird) auf den Wert asdf.
Wenn du jetzt iwo einfach nur $Bla hinschreibst, macht das ja wenig sinn. Um den Inhalt eines Labels zu ändern, musst du wie jetzt schon werwähnt GUICtrlSetData nehmen.
Der Fehler, der gekommen ist - versuch mal zu überlegen, das der bedeutet könnte. Es heißt ja, dass bei dem ControlSetData ein Fehler ist, evtl ist die Variable mit dem Handle falsch? Hab jetzt selber nicht geguckt^^
Natürlich musst du dein Programm nicht mit MsgBoxen machen, aber dir dein fertiges Programm schreiben mach ich auch nicht. du musst dann natürlich die MSgBoxen ersetzen durch das, was du willst, das es gemacht wird...
Ach ja - und wegen den farben - du sollst ja nicht hier im Forum deinen Code schrieben. Copiere ihn einfach in Scite, bearbeite ihn docrt und kopier ihn dann wieder zurück - ist sehr hilfreich.
Ich finds besser wen zuerst die Sache um die es sich handelt genannt wird weil es auch bei den Funcs so is (es heist ja nicht "ReadFile" sondern "FileRead")
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.
@ Creeper, nein, das If Zeug hat nicht gestimmt, da an der Stelle von dem ElseIf die Bedingung nur zutreffen kann, wenn die Bedingung oben auch zutrifft, und damit würde als ElseIf nicht ausgelöst werden. Das Problem lag dort an dem > was ein < sein muss, hier nochmal, zum anschauen:
Code:
If $ver_old >= $ver_new Then
$upd_nn
ElseIf $ver_old > $ver_new Then
$upd_nwd
EndIf
die ElseIf Bedingung kann nicht stimmen oder sie wird garnicht aufgerufen. Evtl siehst dus ja jetzt...
Weiterhin hab ich mir mal die Mühe gemacht und dir das ganze aus reiner Nettigkeit zusammengeschrieben:
Code:
#include <INet.au3>
#include <String.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$OldVersion = InputBox("Version", "Bitte gib die Version ein") ;IniRead("version.ini", "version", "version", "Core not found!")
$IniNewVersion = _INetGetSource("http://secretgaming.de/trinity/version.ini")
$NewVersion = _StringBetween($IniNewVersion, "version=", @CRLF)
If [COLOR="Red"]$OldVersion[/COLOR] = "Core not found!" Then [COLOR="Red"] ;$OldVersion ist ne Input Box er hatte es 1. mit ini gemacht und 2. ist eine Input box mit GUICtrlRead zu lesen;)[/COLOR]
Exit MsgBox(4096, "", "Version.ini nicht gefunden!")
#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)
$LOldVersion= GUICtrlCreateLabel("Alte Version", 144, 104, 84, 25)
$LNewVersion = GUICtrlCreateLabel("Neue Version", 392, 104, 84, 25)
$BUpdate = GUICtrlCreateButton("Update", 256, 176, 107, 33, $WS_GROUP)
$LUpdateNeeded = GUICtrlCreateLabel("", 168, 144, 276, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GuiCtrlSetData($LOldVersion, $OldVersion)
GuiCtrlSetData($LNewVersion, $NewVersion)
If $OldVersion < $NewVersion Then
GuiCtrlSetData($LUpdateNeeded, "Es ist eine neuere Version vorhanden!")
Elseif $OldVersion = $NewVersion Then
GuiCtrlSetData($LUpdateNeeded, "Sie haben die neueste Version!")
Elseif $OldVersion > $NewVersion Then
GuiCtrlSetData($LUpdateNeeded, "Ihre Version ist neuer als die neueste!")
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $BUpdate
_update()
EndSwitch
WEnd
Func _update()
MsgBox(4096, "Fehler", "Diese Funktion steht noch in der Entwicklungsphase!")
EndFunc
Hilfe beim Angezeigtem Zahlen Vergleich in AutoIT 06/11/2011 - AutoIt - 1 Replies Hallo
ich habe vor kurzem Angefangen in AutoIt zu Skripten und suche nach einer Lösung um ein angezeigten Bildschirmtext/Zahl in ein wert auszulesen.
So Ähnlich wie Captcha.
Nun habe ich rausgefunden das man mit ImageSearch Bilder Vergleichen kann.
Die Anzeige ist hierbei ein Splashscreen eines PG´s mit der Anzeige eines Textes und einer Zahl die verglichen werden soll und entspricht das Bild der Zahl dann soll er was Tun z.b. send Taste.
Bitte um Code Schnipsel :handsdown: und wo...
Brauche Hilfe beim Vergleich... 05/04/2011 - Technical Support - 9 Replies Hey,
ich bins nochma,
da meine Grafikkarte GTX560Ti OC einen anderen Chipsatz hat,
als mein Asus M4A89GTD wollte ich mal Fragen ob das ASRock Deluxe4 ein wirklich gutes Mainboard ist? und zu meinen Teilen passt:
//EDIT: Prozessor: GTX 560Ti OChttp://img638.imageshack.us/img638/7451/pc33004. jpg
Und jetzt zur eigentlichen Frage: Welches Mainboard ist besser als das ASRock Deluxe4 bei einem Maximum von 120€ +/-? (könntet ihr das in einem Vergleich aufstellen?
MFG und VIELEN DANK
[Problem]locale_de Problem - Datei fehlt beim packen 04/12/2011 - Metin2 Private Server - 7 Replies Werte e*PvP Community,
Ich brauche eure Hilfe.
Und zwar hab ich ein Problem, das behoben werden muss.
Das Problem liegt bei der locale_de, die ich wieder packen möchte.
Ich nutze hierfür den File Archiver von tim.
Nun zurück zum Thema.
Wenn ich die Datei via "Ausführen -> cmd -> cd C:\FA -> m2 locale_dePack.xml" anwende, kommt eine Fehlermeldung, das eine Datei fehlt.
Und zwar ist es die "gm.mse"
Das kuriose daran ist, das die Datei im Source-Ordner da wo es sein muss auch liegt.
[NEED HELP] Problem beim Einloggen beim Hamachi-Server 02/27/2010 - Metin2 Private Server - 11 Replies Hi Leute,
ein Freund und ich haben uns mal gedacht, dass man sich so aus Spaß einen eigenen kleinen Pserver machen könnte. So nur für uns beide über Hamachi. So, dann ahben wir nach 3h den Server endlich online gekriegt, sodass alles funktionierte mit GM-Rechten etc. Die MC.txt haben wir auch alles gemacht alles funktioniert. Ich konnte mich sogar einloggen und ich komme auch zur Charakterauswahl. Dort angekommen, wähle ich dann den Char aus & kriege dann aber einen Kick. Das ist jedes Mal das...
Variabeln addieren 08/08/2009 - AutoIt - 13 Replies hai leuts
hab hier ein kleines prog in arbeit. ist zwar kein bot aber es soll eine überraschung für mein grossvater werden.
er liebt es ein schweizer kartenspiel names "jasse" zu spielen
und dieses programm soll für ihn rechnen und schreiben.
nun zu meinem problem:
ich mächte auf der linken seite bei punkte eine zahl ein geben können welche es danach zur gesammtpunktzahl addiert, komishcer weise stimmen die zahlen jedoch nicht
wenn ich 10 eingebe und auf den button schreiben drücke...