[Brauche Hilfe] Array in ListView

03/28/2015 12:15 surorek5#1
Hey EPvP

Ich wollte mal fragen, wieso dieser Code nicht geht:


Fehler dabei ist, dass die Daten nicht in der Listview angezeigt werden...

[Ich weiss, der Code ist schlecht, bin auch noch Neuling. Jegliche andere Verbesserungen dürft ihr mir natürlich auch schreiben.]


MFG
03/29/2015 13:27 surorek5#2
#push
03/29/2015 16:32 lolkop#3
Quote:
Originally Posted by surorek5 View Post
#push
Das ganze mit der ini würde ich lassen.

Baue dir deinen Inhalt der Tabelle am Besten von Anfang an über ein Array ein und arbeite mit den Grundfunktionen von AutoIT. Keine Includes, keine höhere Logik... Beschränkung auf die Grundlagen ist in diesem Fall wohl das sinnvollste...

Statt der Ini-Funktionen (langsam und ineffizient) dann noch auf normale FileWrite und FileRead Vorgänge beschränken und es sollte keine Probleme geben.

Edit:
Beispielcode:
Code:
Dim $array[1][9]=[[0]], $fileContent = StringSplit(FileRead('data.txt'), @CRLF, 1)
GUICreate('GUI', 700, 300, Default, Default, 0x10C80000)
$listView = GUICtrlCreateListView('Ort|Benutzer|Passwort|Sicherheitsfrage 1|Antwort 1|Sicherheitsfrage 2|Antwort 2|Kommentar',10 ,10, 680, 240)
For $i=0 To 7
   $array[0][$i+1] = GUICtrlCreateInput('', 10+$i*85, 250, 85, 20)
Next
For $line=1 To $fileContent[0]-1
   $newSplit = StringSplit($fileContent[$line], '|', 1)
   $array[0][0]+=1
   ReDim $array[$array[0][0]+1][9]
   For $i=1 To $newSplit[0]
	  If $i>=9 Then ExitLoop
	  $array[$array[0][0]][$i] = $newSplit[$i]
   Next
   $array[$array[0][0]][0]=GUICtrlCreateListViewItem($fileContent[$line], $listView)
Next
$buttonAdd = GUICtrlCreateButton('Hinzufügen', 10, 270, 340, 20)
$buttonDel = GUICtrlCreateButton('Entfernen', 350, 270, 340, 20)

While Sleep(1)
   Switch GUIGetMsg()
	  Case -3
		 $fileContent = ''
		 For $i=1 To $array[0][0]
			For $h=1 To 8
			   $fileContent &= $array[$i][$h]&'|'
			Next
			$fileContent &= @CRLF
		 Next
		 FileDelete('data.txt')
		 FileWrite('data.txt', $fileContent)
		 Exit
	  Case $buttonAdd
		 $array[0][0]+=1
		 ReDim $array[$array[0][0]+1][9]
		 $controlString = ''
		 For $i=1 To 8
			$array[$array[0][0]][$i] = GUICtrlRead($array[0][$i])
			$controlString &= GUICtrlRead($array[0][$i])&'|'
		 Next
		 $array[$array[0][0]][0]=GUICtrlCreateListViewItem($controlString, $listView)
	  Case $buttonDel
		 $selected = GUICtrlRead($listView)
		 For $i=1 To $array[0][0]
			If $array[$i][0] = $selected Then
			   For $i=$i To $array[0][0]-1
				  For $h=0 To 8
					 $array[$i][$h] = $array[$i+1][$h]
				  Next
			   Next
			   ExitLoop
			EndIf
		 Next
		 ReDim $array[$array[0][0]][9]
		 $array[0][0] -= 1
		 GUICtrlDelete($selected)
   EndSwitch
WEnd
03/29/2015 20:20 surorek5#4
Danke viel mal, werde es anschauen.