Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi problem mit felddatenspeicherung (https://www.delphipraxis.net/68136-problem-mit-felddatenspeicherung.html)

toredo 25. Apr 2006 10:25


problem mit felddatenspeicherung
 
hay,

ich hab mal versucht eine funktion in ein programm einzubauen, dass die eingaben speichern und öffnen kann.
da ich etwas nicht allzu schweres verwenden will hab ich ich mich für die ini-files entschieden.
natürlich hab ich gleich mal die SuFu gestartet und ich habe auch etwas gefunden unter anderem auch ein link zu nem tut.
dann hab ich mal begonnen. zuerst hab ich die unit für die ini-files reingehauen und dann diesen code geschrieben:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
ini: TIniFile;
begin
  ini:=TIniFile.create(ExtractFilePath(Application.exename)+Edit1.Text+'.btc');
  ini.free;
  ini.WriteString('Programm:','Edit1.Text',Edit1.Text);
end;
der sollte ja eigentlich so was in die datei schreiben:
Zitat:

[Programm:]
Edit1.Text=Inhalt der Edit1.Text
aber anstatt, dass das programm was reinschreibt kommt ein fehler, wnen das programm ausgeführt wird und dann auf den button geklickt wird. der fehler sollte in der zweitletzten zeile liegen, aber ich find da nix:S



mfG toredo

Klaus01 25. Apr 2006 10:28

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
ini: TIniFile;
begin
  ini:=TIniFile.create(ExtractFilePath(Application.exename)+Edit1.Text+'.btc');
  ini.free;                   // <-------------
  ini.WriteString('Programm:','Edit1.Text',Edit1.Text);
  ini.free; <-- wenn, dann passt es hier hin.
end;

Du gibst die Instanz ja direkt wieder frei und wenn Du dann in das ini etwas
hineinschreiben willst, gibt es die Instanz nicht mehr.

Grüße
Klaus

toredo 25. Apr 2006 10:33

Re: problem mit felddatenspeicherung
 
hay,

thx, ich dachte das muss ich schon nach dem erstellen der datei machen damit sie freigegeben wird um was reinzuschreiben...
weisst du zufälligerweise auch grade wie ich bei ner ini einen kommentar hinzufügen kann?



mfG toredo

s-off 25. Apr 2006 10:33

Re: problem mit felddatenspeicherung
 
Hallo,

Du zerstörst Ini in der zweiten Zeile und willst dann in der dritten auf etwas, was nicht mehr da ist zugreifen? Das kann nicht funktionieren ;)

Klaus01 25. Apr 2006 10:45

Re: problem mit felddatenspeicherung
 
mit TIniFile kann man meines Wissens keine Kommentare in das iniFile einfügen.

Grüße
Klaus

toredo 25. Apr 2006 10:52

Re: problem mit felddatenspeicherung
 
so, ich bin jetzt wieder ein bissel weitergekommen:
beim lesen hab ich noch ein kleines problem:
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
ini: TIniFile;
begin
  try
    form1.left:=ini.ReadString('Programmname:','Edit1.Text',Edit1.Text);
  finally
    ini.free;
end;
end;
eigentlich sollte das doch gehen, aber bei der zeile, bei der der feldinhalt für Edit1.Text gelesen wird funzt irgendwas nicht, was ich auch versteh weil die zeile auch nicht so richrig aussieht, aber ich find dne fehler nicht:s

dann hab ich noch ne frage. ich konnte ja die ini-files bisher nicht lesen aber schreiben, und ich hab da so ein RichEdit-Feld auch in die ini schreiben lassen, da hat der text aber etwa 10zeilen wenn nicht sogar noch mehr. wenn ich das speichere gibts sowas:
Zitat:

[RichEdit]
RichEdit1.Text=sdadsdfgsdfgsd
fdgdsfgdsfgsd fdg sdg fdsg
sdfgdsfgdfsgsdgs sfdgsdfg fdsg gdfsg sd
sdfgsdfgdsfgsdf gdgfdsg sdfg
ggdfsgsdfgsdgf
sdfdsfgsdfgsdfg
...
kann sowas auch wieder eingelesen werden?



mfG toredo

Klaus01 25. Apr 2006 10:56

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
ini: TIniFile;
begin
  try
    ini := TIniFile.create(....); // <----------------
    form1.left:=ini.ReadString('Programmname:','Edit1.Text',Edit1.Text);
  finally
    ini.free;
end;
end;
Hast vergessen, die ini Instanz zu erstellen.

Das mit dem Richedit weiß ich nicht, ob Du das wieder wie gewünscht einlesen kannst.
Musst es halt ausprobieren.

Grüße
Klaus

toredo 25. Apr 2006 11:03

Re: problem mit felddatenspeicherung
 
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
ini: TIniFile;
begin
  try
    ini := TIniFile.create(....);
    form1.left:=ini.ReadString('Programmname:','Edit1.Text',Edit1.Text);
  finally
    ini.free;
end;
end;
bei der zeile, bei der die variable gelesen werden sollte, kommt beim kompilieren "incompatible types: integer and string"...
aber eigentlich ist da ja gar kein integer.
und beim auslesen hab cih noch en kleine frage, wieso muss ich wenn ich etwas lesen möchte drei dinge in die klammer schreiben, eigentlich solten zwei doch genügen:
1.um zu dem richtigen klammerteil ([w]) zu gelangen
2.um den variablennamen anzugeben, um bei der richtigen variable den wert zu holen.


mfG toredo

Hawkeye219 25. Apr 2006 11:08

Re: problem mit felddatenspeicherung
 
Hallo toredo,

die Online-Hilfe (Delphi-Referenz durchsuchenTIniFile.ReadString) sollte deine Fragen beantworten. :wink:

Gruß Hawkeye

Klaus01 25. Apr 2006 11:10

Re: problem mit felddatenspeicherung
 
Zitat:

bei der zeile, bei der die variable gelesen werden sollte, kommt beim kompilieren "incompatible types: integer and string"...
aber eigentlich ist da ja gar kein integer.
Du liest den Wert aber als String ein, auch wenn dort nur eine Zahl stehen sollte.
Für Integerwerte gibt es WriteInteger und ReadInteger

Zitat:

und beim auslesen hab cih noch en kleine frage, wieso muss ich wenn ich etwas lesen möchte drei dinge in die klammer schreiben, eigentlich solten zwei doch genügen:
1.um zu dem richtigen klammerteil ([w]) zu gelangen
2.um den variablennamen anzugeben, um bei der richtigen variable den wert zu holen.
Der dritte Wert ist der default Wert falls in der IniDatei unter dem Key nichts steht wird dieser Wert übergeben.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz