Frage zu TIniFile
-
also dann mal meine nächste Frage,
ich lade im form einstellungen den pfad der ini datei über eine DriveComboBox und DirectoryListBox und lasse diesen in eine ini schreiben
-Beispiel---------------------
[User]
IniDir=C:\Dir1\Dir2
------------------------------
das funzt auch super!
Nun wollte ich diesen pfad wieder auslesen um die bestimmte ini zu öffnen
und zu bearbeiten
also EditFelder zuweisen die beim laden mit den aktuellen werten gefüllt werden und dann editiert werden können und beim klick auf speichern in der ini gespeichert werden!
wie kann ich an den pfad wie oben nun sagen lade
C:\Dir1\Dir2\bla1.ini und im nächsten Form lade
C:\Dir1\Dir2\bla2.ini
da das rootdir immer gleich bleibt!danke euch schonmal
-
Kannst du dein Problem vielleicht nochmals etwas exakter formulieren. Bedenke, wir kennen dein Projekt nicht und irgendwie werd ich aus deinen Äusserungen nicht schlau...
Versuch den Fokus etwas vom Problem zu lösen. Vielleicht hilft es wenn du die Frage nochmals liest, bevor du postest und dich fragst ob wohl ein aussenstehender das Problem verstehen könnte...
-junix
-
Wie kann ich im BCB TIniFile benutzen???????????????????????????
-
also ich versuchs nochmal
gegeben ist ein Pfad C:\Dir1\Dir2 der in einer ini gespeichert ist!
das mache ich sovoid __fastcall Tfrm_einstellungen::FormCreate(TObject *Sender) { TIniFile *ini; ini=new TIniFile(ChangeFileExt(Application->ExeName,".ini")); lba_rootdir->Caption = ini->ReadString("Users","RootDir",""); delete ini; }
jetzt müsste ich diesen pfad weiterverwenden um die zwei ini's im verzeichnis
zu öffnen und zu bearbeiten!wie gebe ich den Pfad genau an
der in der erzeugten ini gespeichert ist!? er steht ja als Caption im Label nur der ini name fehlt!
wie öffne ich die ini auf der Grundlage des gespeicherten Pfadangabe in der
erzeugten ini?also praktisch hab ich
TIniFile *ini;
ini=new TIniFile(lba_rootdir->Caption + "\Name.ini");ich krigs nicht gebacken ... steh wiedereinmal vor einer Wand
-
Geh mal nicht ganz direkt aufs Ziel los. Mit
AnsiString fName;
hast du bessere Karten. Bau dir den String zusammen und weis ihn dann FileName zu.
-
also ich weiss nu nich wie du das meinst
kannst mir nen beispiel posten... bitte!ne andere möglichkeit hab ich gefunden mit OpenDialog
dann muss ich ihn aber 2mal verwenden und hab den genauen vollständigen pfad mit
dem filenamen in der Prog ini stehn!
lasse ihn in einem Label ausgeben um es zu prüfen ... funztaber wenn ich den pfad laden will
funzt es wieder nichtTIniFile *ini; ini=new TIniFile(lba_rootdir->Caption); Edit3->Caption=ini->ReadString("Section","Ident","Wert"); delete ini;
-
Original erstellt von 0Bytes:
**wie öffne ich die ini auf der Grundlage des gespeicherten Pfadangabe in der
erzeugten ini?
**?????????????????????????????????????????????????????????? :confused
GAR NICHT!!!
Du willst die Ini- Datei in dem (in der Ini gespeicherten) Pfad suchen und oeffnen???
Das geht nicht, Du muesstest ja den (gespeicherten) Namen kennen, um an die (gespeicherte) Info 'ranzukommen!
Das musst Du in einem festgelegten Pfad speichern - z.B. in Registry!
Speicher die Ini doch im Pfad des Programmes. den Pfad haste in Application->ExeName enthalten. Mit SubString und Stringergaenzung um Ini- Namen haste den kompletten Pfad!
-
Was Omega-X meinte ist das:
AnsiString fIniFile;
Das würdest du in der Klassendefinition deklarieren...
In deiner MEthode würdest du es so machen:
DAs istr als Beispiel gedacht... Das du es siehst wie man es am besten macht...void __fastcall Tfrm_einstellungen::FormCreate(TObject *Sender) { this->fIniFile = ChangeFileExt(Application->ExeName,".ini"); TIniFile *ini = new TIniFile(this->fIniFile); lba_rootdir->Caption = ini->ReadString("Users","RootDir",""); if(ini) { delete ini; } }
-
Ich dachte das etwa so:
AnsiString fName = Edit3->Caption+".ini"; ini->FileName = fName;
Plazier am besten mal den Cursor auf TIniFile und geh auf F1.
Kannst auch mal auf den Link in @AndreasW's Sig gehen. Eine sehr schöne Doku. Auf TIniFile wird sehr detailiert eingegangen.
-
Sorry Leute wegen der blöden Fragerei,
aber ich bin ein Blödmann ehrlich,
es konnte nicht gehn, weil ich die zu ladende/auszulesende ini Datei geladen hab
*kopfschüttelich hab mitbekommen das ich immer die ini des progs geladen hab, da konnten wohl kaum die daten drin sein die ich auslesen wollte
nu hab ich die variante mit zwei OpenDialog um den completten pfad mit ini namen in der Prog ini abzuspeichern
davonabgesehen hab ich eure hinweise durchprobiert und sie funzen genauso ich hätte nur besser aufpassen sollen oder nach xx Stunden Borland mal nen Spaziergang machen sollen dann klappts auch mit TIniFile
habt vielen Dank für Eure Hinweise
haben mir viele Denkanstösse gegeben
seid ein klasse forum
Danke
-
Original erstellt von 0Bytes:
haben mir viele Denkanstösse gegeben
seid ein klasse forum
DankeSowas hören wir gerne... Macht uns auch wieder munter, weiter zu helfen.