INI File
-
Hallo,
also ich hab die FAQ´s nach bestem Gewissen gelesen, ich komm nicht drauf.
In meinem Fall möchte ich in eine combobox Benutzernamen, welche ich in der ini datei festhalte hinzufügen. Für eine feste Anzahl von Benutzernamen ist ja alles ganz einfach. Kann man z.B. mit einer for-Anweisung solange Benutzernamen in die comobox "laden" bis keine weiteren namen mehr vorhanden sind?
Mein bisheriger Ansatz:
__fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { int i=0, j; TIniFile *AuswahlP; AuswahlP = new TIniFile (ChangeFileExt (Application->ExeName,".ini")); AnsiString Benutzer; for (i==0; i<j; i++) { j=AuswahlP->ReadInteger("Benutzer", "Benutzeranzahl", 0); Benutzer=AuswahlP->ReadString("Benutzer", "Benutzer_[i]", "----------"); ComboBox1->Items->Add(Benutzer); };
-
Hallo
Du kannst mit TIniFile::ReadSection erstmal alle vorhandenen Wertenamen bestimmen. Dann must du nur noch aus der Ergebnisliste alle nichtpassenden Werte entfernen und hast dann die Menge der betreffenden Schlüsselnamen.
bis bald
akari
-
Benutzer=AuswahlP->ReadString("Benutzer", "Benutzer_[i]", "----------");
Dies wird nicht so funktionieren, wie du es gedacht hast.
Richtig sollte folgendes sein:Benutzer=AuswahlP->ReadString("Benutzer", "Benutzer_"+IntToStr(i), "----------");
Besser wäre es noch wenn in der Section "Benutzer" noch als erster Wert die Anzahl abgespeichert werden würde, z.B.
[Benutzer] Anzahl=2 Benuter_1=Ich Benutzer_2=Du
-
Danke für die Hilfe!
Ich habs jetz mit readsectionvalue gebastelt, funktioniert einwandfrei.
-
hallo,
da der Titel ja so schön übergreifend ist traue cih mich hier mal eine frage zu stellen.
Ich hab ein bischen in der Hilfe geguckt weil mir Ini Files auf anhieb gefallen haben^^
Jetzt steht da dieser code zum erstellen eines Files:TIniFile *ini; ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ) );
So. Ich denke bei diesem teil:
ChangeFileExt( Application->ExeName, ".INI" )
wird klargestellt wo die datei gespeichert werden soll. Nur leider kann ich mit ChangeFileExt und Application nix anfangen.
V.a. mit changefileext.
Nach meiner ansicht müsste durch die app. der speicherort auserdem so aussehen: ...Project1.exe.INI
geht das überhaupt?
BItte um hilfe.
-
hast du ChangeFileExt mal im BCB in der Hilfe gesucht?
alternativ hilft auch Englisch:
Change -> ändern
File -> Datei
Ext = Extension -> Endung
--> Ändere Dateendung
und das führt zu: Project.ini
-
Th schrieb:
Besser wäre es noch wenn in der Section "Benutzer" noch als erster Wert die Anzahl abgespeichert werden würde, z.B.
Nicht zwangsläufig; denn dann müsste er immer dafür sorgen, das alle Benutzernamen in einer konstanten Reihenfolge aufgelistet werden, ohne Lücken! Wenn das hingegen per Section ausgelesen wird, dann erspart man sich das ständige kontrollieren und neusortieren, wenn ein Benutzer gelöscht wird.
-
ah danke...
das ich changefileext in der hilfe suchen muss hab ich vergessen
tut mir leid
aber mit deiner beschreibung wird mir alles klar.
mit dem englisch tue ich mir schwer weil ich noch nicht so lange englisch habe.
Das heißt dann also das ich anstadt der Application ja uch einen string nehmen kann.
DANKE
Jetzt kann ich auch werte speichern^^