Sortierung

04/01/2013 13:51 Hero3#1
Hallo zusammen.
Ich arbeite gerade an einem Projekt das dann auch in diesem Forum veröffentlicht werden soll.

Ein Problem habe ich allerdings und hoffe das ihr mir weiter helfen könnt.

Ich habe eine .ini datei die über inputs in einer GUI gefüllt werden. Diese .ini beleibt auch nach beendigung des Proges erhalten.
Es kann nun sein das der User jedesmal die selben daten in die inputs einträgt erk ann aber auch andere eintragen. Ich will das die .ini alle jemals eingtragenen Werte enthält. Sprich es muss geguck werden ob der wert schon existiert dann passiert nicht und wenn er nicht vorhanden ist soll er hinzugefügt werden.
Die .ini ist so aufgebaut
[Werte]
1=1234
2=5748
3=0837

Danke!
04/01/2013 14:48 BladeTiger12#2
Wenn dein Key immer 1-2-3-4-5-6-7 ist also:
[Werte]
0=6
1=
2=
3=
4=
5=
6=
7=

Dann solltest du mal in der 0 die größe der Ini Einträge reinmachen.
Zu deinem Problem:
Code:
#Region
$GUI = GUICreate("Test", 149, 95, 192, 124)
$Input = GUICtrlCreateInput("", 8, 16, 121, 21)
$BtnAdd = GUICtrlCreateButton("Hinzufügen", 24, 48, 75, 25)
GUISetState()
#EndRegion

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit
		Case $BtnAdd
			_Add()

	EndSwitch
WEnd

Func _Add()
	$rtn = 0
	$Lenght = IniRead("ini.ini" , "Werte" , "0" , "") ;Liest in der Ini 0= aus( Da sollen die größe der Einträge stehen)
	For $i = 1 To $Lenght;Geht von 1 zu der gelessen Länge
		If IniRead("ini.ini" , "Werte" , $i , "") = GUICtrlRead($Input) Then ;Vergleicht die Werte
			$rtn = 1;Setzt return auf 1 wenn der Wert vorhanden ist
			ExitLoop;Beendet die For-Schleife
		EndIf
	Next
	If $rtn = 1 Then;Wenn return auf 1 ist Wert schon gefunden
		MsgBox(64 , "Info" , "Wert schon gefunden");Gibt eine MessageBox aus
		Return 0;Beendet die Funktion
	ElseIf $rtn = 0 Then;Wenn return auf 0 ist Wert nicht gefunden
		IniWrite("ini.ini" , "Werte" , "0" , $Lenght +1);Eintrag wird hinzgefügt.Ini wird erweitert.
		IniWrite("ini.ini" , "Werte" , $Lenght +1 , GUICtrlRead($Input));Fügt den Eintrag hinzu.
		MsgBox(64 , "Info" , "Wert erfolgreich hinzugefügt!");Gibt eine MessageBox aus
	EndIf
EndFunc
04/01/2013 15:55 Hero3#3
Super Danke! Hat sofort funktioniert!

Werde das Prog spätestens nächstes We releasen!

Danke!

Eine Frage hat sich moch ergeben:

Wie kann ich auf einen Button einer Website klicken über das in einer GUI angezeite internet Fenster?

Es handelt sich genauer um den Werbung übersprimgen button bei adfly werbung.
04/01/2013 17:35 BladeTiger12#4
Du brauchst erstmal den Namen des Buttons.
Dannach kannst du
Code:
$Name = _IEGetObjByName($IEObject , "ButtonName")
_IEAction($Name , "click")
machen

(Name des Buttons bekommst du durch rechtsklick auf den button-> Element Untersuchen
Da steht dann der name="NAME"
04/01/2013 17:44 .AppleTree.#5
So sollte es klappen:
Code:
$obj = _IEGetObjById($oIE, "skip_button")
_IEAction($obj, "click")
€: Habe den post über mir erst gerade gesehen, ich war noch auf dieser Seite als der noch nicht da war ;)

Aber besser du nimmst ById wenn es geht und auf adfly hat der sowieso keinen Namen. Naja so sollte es jedenfalls direkt gehen.
04/02/2013 10:51 Hero3#6
Ist jetzt released!
Guckt euch das doch mal an... Ich brauchte noch Tester

[Only registered and activated users can see links. Click Here To Register...]