Entwickler-Ecke
Dateizugriff - Ini.WriteString('Kategorie', Edit2.Text, Edit3.Text);
DSl1mSh4dy - Sa 10.04.10 21:03
Titel: Ini.WriteString('Kategorie', Edit2.Text, Edit3.Text);
Hallo zusammen,
muss etwa folgendes bewerkstelligen:
Ini.WriteString('Kategorie', Edit2.Text, Edit3.Text);
Bekomme bei dieser Stelle immer einen Fehler in der 'ntdll.dll' - hat jemand eine Idee wie ich es machen kann? Das Problem ist, dass in Edit2 immer was anderes drin stehen kann und der Wert aus Edit3 der zu dem Produkt in Edit2 gehört in die Ini-Datei geschrieben werden soll!
z.Bsp.: Ini.WriteString('Elektronik', 'Apple MacBook', '1299,00');
Ini.WriteString('Elektronik', 'Apple IPod Touch 32GB', '149,00');
und in Edit2 steht dann halt immer das Produkt (Apple MacBook oder Apple IPod Touch 32GB oder was auch immer) und in Edit3 der Preis (1299,00 oder 149,00 oder was auch immer) und so habe ich gehofft, dass es mit
Ini.WriteString('Elektronik', Edit2.Text, Edit3.Text);
funktionieren könnte - jemand eine Idee???
Über schnelle hilfreiche Tipps wäre ich sehr dankbar!
Danke und Gruß
MaPsTaR - Sa 10.04.10 21:06
Das ist an sich so richtig, vermute mal, dass der Fehler an anderer Stelle auftritt.
CODE???
DSl1mSh4dy - Sa 10.04.10 21:10
der komplette Code würde den Rahmen Sprengen. Hier der Ausschnitt indem mir der Fehler angezeigt wird:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| try if ((Form2.Edit6.Text = 'Eier') OR (Form2.Edit6.Text = 'Milch') OR (Form2.Edit6.Text = 'Wolle') OR (Form2.Edit6.Text = 'Honig') OR (Form2.Edit6.Text = 'Mayonnaise') OR (Form2.Edit6.Text = 'Käse') OR (Form2.Edit6.Text = 'Wollknäuel') OR (Form2.Edit6.Text = 'Bonbon')) then begin Ini.WriteString('Tierisch', Form2.Edit30.Text, Form2.Edit7.Text) end else begin Ini.WriteString('Pflanzlich', Form2.Edit30.Text, Form2.Edit7.Text) end; finally Ini.UpdateFile; Ini.Free end; |
auf einem anderen Button habe ich das gleiche nur mit Ini.ReadString, also:
Delphi-Quelltext
1:
| Form2.Edit7.Text := Ini.ReadString('Tierisch', Form2.Edit6.Text, '') |
und das funktioniert ohne Fehler ......
Gruß
Moderiert von
Narses: Delphi-Tags hinzugefügt
MaPsTaR - Sa 10.04.10 21:17
Da ich das hier nicht finden kann...
Öffnest du die Ini-Datei irgendwo auch mit Ini := TIniFile.Create(FileName);?
Setze bitte deinen Code in [DELPHI]-Tags
DSl1mSh4dy - Sa 10.04.10 21:25
Hier alles aus dem Button1Click zu der Ini.
Sry wegen den Delphi-Tags, bin neu hier und hatte es eben noch nicht gefunden.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TForm2.Button1Click(Sender: TObject); var berechnung: Extended; FarmiPreis: Extended; Prod: String; AProd: String; BProd: String; a: Integer; Ini: TIniFile; begin ProgrammOrdner := ExtractFilePath(Application.ExeName) + 'Produkte.ini'; Ini := TIniFile.Create(ProgrammOrdner); Speichern := Ini.ReadBool('Optionen', 'Speichern', false); if Speichern = true then begin if Form2.Edit5.Visible = true then begin try if ((Form2.Edit6.Text = 'Eier') OR (Form2.Edit6.Text = 'Milch') OR (Form2.Edit6.Text = 'Wolle') OR (Form2.Edit6.Text = 'Honig') OR (Form2.Edit6.Text = 'Mayonnaise') OR (Form2.Edit6.Text = 'Käse') OR (Form2.Edit6.Text = 'Wollknäuel') OR (Form2.Edit6.Text = 'Bonbon')) then begin Ini.WriteString('Tierisch', Form2.Edit30.Text, Form2.Edit7.Text) end else begin Ini.WriteString('Pflanzlich', Form2.Edit30.Text, Form2.Edit7.Text) end; finally end; end; end; end; |
Gruß
MaPsTaR - Sa 10.04.10 21:40
Kann dir erstmal nur sagen, dass Bool-Vergleiche auf = true unsicher sind...if Speichern then reicht aus.
Hast du dir die Procedure schonmal schrittweise angesehen, um zu testen, ob eventuell irgendwo fragwürdige Werte auftreten?
DSl1mSh4dy - Sa 10.04.10 21:48
okay, dann werd ich das mal ändern.
also ich kann dazu sagen, dass alles funktioniert ausser das in der Ini speichern. Wenn ich die WriteStrings ändere in
Delphi-Quelltext
1:
| Ini.WriteString('Tierisch', 'Milch', Edit7.Text); |
dann funktioniert das ja auch - also muss der Fehler ja dort auftreten .........
MaPsTaR - Sa 10.04.10 21:52
Sieht so aus.
Dann setz mal einen Breakpoint in der Zeile Ini.WriteString('Tierisch', Form2.Edit30.Text, Form2.Edit7.Text) und starte dein Programm. Wenn die Ausführung dann bei dem Breakpoint stehen bleibt, hältst du die Maus über das "Text" von Form2.Edit30.Text und wartest, bis dir der Wert angezeigt wird.
Wäre vielleicht hilfreich, wenn deine verwendeten Komponenten eindeutige Bezeichner hätten, mit Edit1 - Edit30 kann man schnell mal eine falsche erwischen.
DSl1mSh4dy - Sa 10.04.10 21:58
super, danke dir! Fehler gefunden ;-)
Einfach das falsche Edit gehabt.
Danke!
Gruß
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!