Hey,
ich spiele gerade mit dem Listview-Datenbank Beispiel von Oscar (Listview-Datenbank-Beispiel) und wollte eine Funktion einbauen.
Also es soll nicht nur eine Datenbank aufgerufen werden, sondern über "Fileopendialog" eine bestimmte Datenbank ausgewählt werden.
Soweit ist das noch kein Problem, allerdings möchte ich neben der Informationen aus der Datenbank noch verschiedene Labels/Inputfelder mit zusätzlichen Daten zur jeweiligen Datenbank füttern.
Meine Lösung:
Spoiler anzeigen
Func Load() ; Datenbank-Datei laden
$ini = FileOpenDialog("Bitte auswählen", @ScriptDir, "INI (*.ini)")
Local $sDBFile = IniRead($ini, "DB", "File", "")
Local $sItem
Local $hFile = FileOpen($sDBFile, 0) ; Datei zum lesen öffnen
If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
_GUICtrlListView_BeginUpdate($hLVHandle) ; Listview sperren
While True ; Endlosschleife
$sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen
If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
GUICtrlCreateListViewItem($sItem, $hListView) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
WEnd
_GUICtrlListView_EndUpdate($hLVHandle) ; Listview wieder freigeben
FileClose($hFile) ; Datei schließen
EndIf
EndFunc ;==>Load
Die Load() Funktion bekommt ihre Info welche Datenbank gelesen werden soll direkt aus einer .ini und dort kann ich auch die Zusatzinfos auslesen.
Allerdings brauche ich dann pro Datenbank eine extra .ini
Vielleicht habt ihr da ein besseres Konzept? Alles in eine .ini zu schreiben hat das Problem mit der Auswahl der jeweiligen Datenbank, also über eine einfaches Fileopendialog funktionierts dann nichtmehr.
Die Zusatzinfo in die jeweilige Datenbank zu packen hat den Nachteil, dass man die jeweiligen Zeilen beim einlesen fürs Listview irgendwie ausschließen müsste.
Naja wie gesagt vielleicht hat einer von euch ja eine bessere Idee?
Zweites Problem:
Wie kann ich das mehrmalige Laden der gleichen Datenbank unterbinden?
Drittes Problem:
Wie kann ich verhindern, dass mein Programm mehr als 1-mal gestartet werden kann? Erste Versuche mit "ProcessExists" führten mich nichts zum Ziel (irgendwie logisch wenn ich das am Anfang abfrage beendet sich das Prog. selbst )
Danke schonmal für die Antworten.
Gruß nuts