Geht bestimmt besser, aber naja:
Spoiler anzeigen
#include <File.au3>
#include <GUIListView.au3>
Dim $datas
$file="data.dat"
_FileReadToArray($file, $datas)
$hFile=FileOpen($file)
$oGUI = GUICreate("Passwort Manager", 374, 418, 192, 124)
$hList = GUICtrlCreateListView("Benutzername|Passwort", 9, 32, 245, 370)
$LVContext=GUICtrlCreateContextMenu($hList)
$deletespecific=GUICtrlCreateMenuItem("Löschen", $LVContext)
$deleteall=GUICtrlCreateMenuItem("Alle Löschen", $LVContext)
_GUICtrlListView_SetColumnWidth($hList, 0, 120)
_GUICtrlListView_SetColumnWidth($hList, 1, 120)
GUICtrlCreateLabel("Passwort Manager", 16, 8, 99, 17)
$adddata = GUICtrlCreateButton("Hinzufügen", 272, 32, 75, 25)
$editdata = GUICtrlCreateButton("Bearbeiten", 272, 72, 75, 25)
$deletedata = GUICtrlCreateButton("Löschen", 272, 112, 75, 25)
GUISetState(@SW_SHOW)
For $i=1 to _FileCountLines($file) Step 2
GUICtrlCreateListViewItem(FileReadLine($hFile, $i)&"|"&FileReadLine($hFile, $i+1), $hList)
Next
While True
Switch GUIGetMsg()
Case -3
Exit
Case $adddata
adddataGUI()
$temp=FileOpen($file)
For $i=1 to _FileCountLines($file)
If FileReadLine($TEMP, $i)="" Then _FileWriteToLine($file, $i, "", 1)
Next
FileClose($temp)
If IsArray($datas) Then
For $i=0 to $datas[0]
_ArrayDelete($datas, $i)
Next
EndIf
_FileReadToArray($file, $datas)
FileClose($hFile)
$hFile=FileOpen($file)
_GUICtrlListView_DeleteAllItems($hList)
For $i=1 to _FileCountLines($file) Step 2
GUICtrlCreateListViewItem(FileReadLine($hFile, $i)&"|"&FileReadLine($hFile, $i+1), $hList)
Next
Case $deletedata
$data=_GUICtrlListView_GetSelectedIndices($hList)*2+1
_FileWriteToLine($file, $data, "", 1)
_FileWriteToLine($file, $data, "", 1)
$temp=FileOpen($file)
For $i=1 to _FileCountLines($file)
If FileReadLine($TEMP, $i)="" Then _FileWriteToLine($file, $i, "", 1)
Next
FileClose($temp)
If IsArray($datas) Then
For $i=0 to $datas[0]
_ArrayDelete($datas, $i)
Next
EndIf
_FileReadToArray($file, $datas)
FileClose($hFile)
$hFile=FileOpen($file)
_GUICtrlListView_DeleteAllItems($hList)
For $i=1 to _FileCountLines($file) Step 2
GUICtrlCreateListViewItem(FileReadLine($hFile, $i)&"|"&FileReadLine($hFile, $i+1), $hList)
Next
Case $editdata
$data=_GUICtrlListView_GetSelectedIndices($hList)*2+1
$edGUI = GUICreate("Daten ändern", 322, 150, 192, 124)
GUICtrlCreateLabel("Username", 16, 16, 44, 17)
$username = GUICtrlCreateInput(FileReadLine($hFile, $data), 72, 14, 185, 21)
GUICtrlCreateLabel("Passwort", 16, 56, 44, 17)
$passwort = GUICtrlCreateInput(FileReadLine($hFile, $data+1), 72, 54, 185, 21)
$savechanges = GUICtrlCreateButton("Änderungen speichern", 72, 88, 139, 25)
GUISetState()
While True
Switch GUIGetMsg()
Case -3
GUIDelete($edGUI)
ExitLoop
Case $savechanges
_FileWriteToLine($file, $data, GUICtrlRead($username), 1)
_FileWriteToLine($file, $data+1, GUICtrlRead($passwort), 1)
GUIDelete($edGUI)
ExitLoop
EndSwitch
WEnd
$temp=FileOpen($file)
For $i=1 to _FileCountLines($file)
If FileReadLine($TEMP, $i)="" Then _FileWriteToLine($file, $i, "", 1)
Next
FileClose($temp)
If IsArray($datas) Then
For $i=0 to $datas[0]
_ArrayDelete($datas, $i)
Next
EndIf
_FileReadToArray($file, $datas)
FileClose($hFile)
$hFile=FileOpen($file)
_GUICtrlListView_DeleteAllItems($hList)
For $i=1 to _FileCountLines($file) Step 2
GUICtrlCreateListViewItem(FileReadLine($hFile, $i)&"|"&FileReadLine($hFile, $i+1), $hList)
Next
Case $deletespecific
ControlClick("Optionen", "", $deletedata)
Case $deleteall
FileClose($hFile)
FileDelete($file)
$hFile=FileOpen($file)
_GUICtrlListView_DeleteAllItems($hList)
EndSwitch
WEnd
Func adddataGUI()
$adGUI = GUICreate("Daten hinzufügen", 388, 138, 192, 124)
GUICtrlCreateLabel("Username", 16, 16, 44, 17)
$username = GUICtrlCreateInput("", 80, 14, 257, 21)
GUICtrlCreateLabel("Passwort", 16, 48, 44, 17)
$passwort = GUICtrlCreateInput("", 80, 46, 257, 21)
$save = GUICtrlCreateButton("Speichern", 136, 80, 75, 25)
GUISetState(@SW_SHOW)
While True
Switch GUIGetMsg()
Case -3
GUIDelete($adGUI)
Return
Case $save
FileWrite($file, @CRLF&GUICtrlRead($username)&@CRLF)
FileWrite($file, GUICtrlRead($passwort))
GUIDelete($adGUI)
Return
EndSwitch
WEnd
EndFunc
Ich würde die Datei aber verschlüsseln...