Autor |
Beitrag |
DSl1mSh4dy
Hält's aus hier
Beiträge: 15
|
Verfasst: Sa 10.04.10 21:03
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
      
Beiträge: 90
Erhaltene Danke: 4
Win XP
Delphi 7 Enterprise
|
Verfasst: Sa 10.04.10 21:06
Das ist an sich so richtig, vermute mal, dass der Fehler an anderer Stelle auftritt.
CODE???
_________________ Liebe Kinder, es stimmt ... solnage auch nur der ertse und lezte Bchutsabe rihctig ist und alle andreen Bcuhsatben irgendwie vorahnden sind,
dann knan man es dennonch lesen, also macht nur weiter so, wir verstehen euch schon
|
|
DSl1mSh4dy 
Hält's aus hier
Beiträge: 15
|
Verfasst: 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
      
Beiträge: 90
Erhaltene Danke: 4
Win XP
Delphi 7 Enterprise
|
Verfasst: 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
_________________ Liebe Kinder, es stimmt ... solnage auch nur der ertse und lezte Bchutsabe rihctig ist und alle andreen Bcuhsatben irgendwie vorahnden sind,
dann knan man es dennonch lesen, also macht nur weiter so, wir verstehen euch schon
|
|
DSl1mSh4dy 
Hält's aus hier
Beiträge: 15
|
Verfasst: 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
      
Beiträge: 90
Erhaltene Danke: 4
Win XP
Delphi 7 Enterprise
|
Verfasst: 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?
_________________ Liebe Kinder, es stimmt ... solnage auch nur der ertse und lezte Bchutsabe rihctig ist und alle andreen Bcuhsatben irgendwie vorahnden sind,
dann knan man es dennonch lesen, also macht nur weiter so, wir verstehen euch schon
|
|
DSl1mSh4dy 
Hält's aus hier
Beiträge: 15
|
Verfasst: 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
      
Beiträge: 90
Erhaltene Danke: 4
Win XP
Delphi 7 Enterprise
|
Verfasst: 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.
_________________ Liebe Kinder, es stimmt ... solnage auch nur der ertse und lezte Bchutsabe rihctig ist und alle andreen Bcuhsatben irgendwie vorahnden sind,
dann knan man es dennonch lesen, also macht nur weiter so, wir verstehen euch schon
|
|
DSl1mSh4dy 
Hält's aus hier
Beiträge: 15
|
Verfasst: Sa 10.04.10 21:58
super, danke dir! Fehler gefunden
Einfach das falsche Edit gehabt.
Danke!
Gruß
|
|
|