iniwrite & for-schleifen Problem

06/27/2011 18:15 Ludder231#1
Hallo epvpers,

Ich ab mal ne frage; wie mach ich das wenn zwei Sachen, einmal aus einer Inputbox und einmal aus einer ini-datei nicht übereinstimmen dann eine neue Zeile in der ini angelegt wird(mit einem anderen Namen?)

Ich habs mal so aber da passiert nichts:
Mein Code sollte eigentlich machen: 1. Wenn ein neuer Pfad existiert, der noch nicht gespeichert wurde(in der ini), dann einen anlegen. 2. Wenn mehrere dazukommen und schon einer existiert und der nicht mit dem in $input5where übereinstimmt eine neue zeile machen("installpath2" z.B)
06/27/2011 18:42 Reeek#2
Code:
IniWrite(@WindowsDir&"\Teamspeak.ini", "Join", "Installpath"&+1, GUICtrlRead($Input5where))
zu

Code:
IniWrite(@WindowsDir&"\Teamspeak.ini", "Join", "Installpath"&$i,GUICtrlRead($input5where))
schätze ich zumindest
06/27/2011 19:03 Ludder231#3
Quote:
Originally Posted by Reeek View Post
Code:
IniWrite(@WindowsDir&"\Teamspeak.ini", "Join", "Installpath"&+1, GUICtrlRead($Input5where))
zu

Code:
IniWrite(@WindowsDir&"\Teamspeak.ini", "Join", "Installpath"&$i,GUICtrlRead($input5where))
schätze ich zumindest
Hab ich schon versucht ;)
06/27/2011 20:34 lolkop#4
du müsstest dir wenn schon eine eigene sektion anlegen für den install path.

diese kannst du dann komplett per IniReadSection einlesen. dann in einer for-schleife jedes element mit dem input vergleichen. im falle keines treffers dann ubound vom eingelesenen array bestimmen und ein neues element hinzufügen.

Edit
kleines beispiel:
Code:
GUICreate('blah', 200, 70)
GUISetState()
$input = GUICtrlCreateInput('',10, 10, 180, 20)
$check = GUICtrlCreateButton('check', 10, 40, 180, 20)

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $check
			$found = False
			$ini = IniReadSection('blah.ini', 'blubb')
			If IsArray($ini) Then
				For $i=1 To $ini[0][0]
					If $ini[$i][1] = GUICtrlRead($input) Then $found = True
				Next
				If Not $found Then
					IniWrite('blah.ini', 'blubb', 'key'&$ini[0][0]+1, GUICtrlRead($input))
					MsgBox(0, 'info', GUICtrlRead($input)&' was added to the ini')
				Else
					MsgBox(0, 'info', GUICtrlRead($input)&' was found in the ini')
				EndIf
			Else
				IniWrite('blah.ini', 'blubb', 'key1', GUICtrlRead($input))
				MsgBox(0, 'info', GUICtrlRead($input)&' was added to the ini')
			EndIf
	EndSwitch
WEnd
06/27/2011 21:59 Ludder231#5
Quote:
Originally Posted by lolkop View Post
du müsstest dir wenn schon eine eigene sektion anlegen für den install path.

diese kannst du dann komplett per IniReadSection einlesen. dann in einer for-schleife jedes element mit dem input vergleichen. im falle keines treffers dann ubound vom eingelesenen array bestimmen und ein neues element hinzufügen.

und wie kann ich das gespeicherte wieder aufrufen so das es in einem dropdown menü erscheint? weil es ist dann ja mit 1,2,3,4,5 undso vershen und ich kann das nicht auslesen, auchm it ner for-schleife aber wie?
PHP Code:
GUICtrlSetData($Input5where,IniRead(@WindowsDir&"\Teamspeak.ini""Install""Installpath""")) 
so kann ich ja nur eins auslesen, also immer nur das erste...
06/27/2011 22:11 lolkop#6
per inireadsection liest du doch automatisch alle daten in ein array