Autor Beitrag
DSl1mSh4dy
Hält's aus hier
Beiträge: 15



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 4

Win XP
Delphi 7 Enterprise
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 10.04.10 21:10 
der komplette Code würde den Rahmen Sprengen. Hier der Ausschnitt indem mir der Fehler angezeigt wird:
ausblenden 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)  // Hier wird mir der Fehler angezeigt, aber nur weil die Bedngung zutrifft....
   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:
ausblenden Delphi-Quelltext
1:
Form2.Edit7.Text := Ini.ReadString('Tierisch', Form2.Edit6.Text, '')					

und das funktioniert ohne Fehler ......

Gruß

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
MaPsTaR
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 4

Win XP
Delphi 7 Enterprise
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: 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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 4

Win XP
Delphi 7 Enterprise
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: 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
ausblenden Delphi-Quelltext
1:
Ini.WriteString('Tierisch''Milch', Edit7.Text);					


dann funktioniert das ja auch - also muss der Fehler ja dort auftreten .........
MaPsTaR
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 90
Erhaltene Danke: 4

Win XP
Delphi 7 Enterprise
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 10.04.10 21:58 
super, danke dir! Fehler gefunden ;-)
Einfach das falsche Edit gehabt.

Danke!

Gruß