Autor Beitrag
Masta_Rafa
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 08.09.08 20:00 
Hallo,

ich bins mal wieder^^

bin jetzt am Ende meines Programms angelangt und nun hab ich ein neues Problem:

Das Programm speichert alle Werte korrekt, auch Dezimalzahlen, versuche ich jedoch die Werte anschließend zu öffnen, so geht dies bei einigen Werten nur teilweise, bei anderen gar nicht.

So funktioniert das öffnen zb bei einigen Werten nur, wenn sie ganzzahlig sind, (obwohl als single definiert). soblad sie eine Kommastelle enthalten werden sie zwar richtig gespeichert, aber beim Öffnet gibt es Probleme.

Zunächst erscheint die Meldung:

Im Projek ... ist eine Exception der Klasse EInOutError mit der Meldung 'Ungültige numerische Eingabe' aufgetreten.

Drücke ich nun auf Fortsetzen, dann erscheint die Meldung 'Ungültige numerische Eingabe'

Bei Ganzzahlen funktioniert dies, wie gesagt einwandfrei.


Nun zu den Werten, die gar nicht funktionieren. Sie werden zwar richtig gespeichert, doch beim öffnen erscheint die gleiche Meldung und er bleibt bei einer bestimmten Zeile stehen...

Hier der Quellcode

ausblenden volle Höhe 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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
procedure TForm1.MenueOeffnenClick(Sender: TObject);
var
  DateiName: string;  //Da der Dateiname eine Zeichenkette ist (ein Wort), muss hier string verwendet werden
  DateiEingabe: TextFile; //Bedeutet, dass ein Dateityp verwendet wird, der einen Text enthält
  DateiAusgabe: TextFile;
  Regallänge, Lagerhöhe, Palettenlast : single;
begin
  If MessageDlg ('Sollen Werte geöffnet werden?', mtInformation,[mbYes,mbNo],0) = mrYes
    then
      begin
        If OpenDialog1.Execute then  
          begin          //Eingabewerte öffnen
            DateiName := OpenDialog1.FileName;
            AssignFile (DateiEingabe, DateiName);  
            Reset (DateiEingabe);               
            ReadLn (DateiEingabe, Regallänge);  
            EditRegallaengeEingabe.Text := FloattoStr (Regallänge); 
            ReadLn (DateiEingabe, Lagerhöhe);
            EditLagerhoeheEingabe.Text := FloattoStr (Lagerhöhe);
            ReadLn (DateiEingabe, Palettenlast);
            EditPalettenlastEingabe.Text := FloattoStr (Palettenlast);
            CloseFile (DateiEingabe);           
          end;
      end
      else   
      exit;



  If OpenDialog1.Execute then
      begin
      DateiName := OpenDialog1.FileName;
      AssignFile (DateiAusgabe, DateiName);
      Reset (DateiAusgabe);
      ReadLn (DateiAusgabe, Gesamtkosten);   // hier bleibt das Feld danach grau markiert, wenn ich delphi anhalte
      EditRegalkosten.Text := FloattostrF (Gesamtkosten, ffnumber, 82);  
      ReadLn (DateiAusgabe, OptimaleZellenbreite);
      EditOptimaleZellenbreite.Text := Floattostr (OptimaleZellenbreite);  
      ReadLn (DateiAusgabe, Regallänge);
      EditRegallaengeAusgabe.Text := FloattostrF (Regallänge, ffnumber, 8 ,1);  
      ReadLn (DateiAusgabe, Regalhöhe);
      EditRegalhoeheAusgabe.Text := FloattostrF (Regalhöhe, ffnumber, 81);
      ReadLn (DateiAusgabe, ITräger);
      EditITraeger.Text := Inttostr (ITräger); 
      ReadLn (DateiAusgabe, KostenZelleEinePalette);
      Label54.Caption := FloattoStrF (KostenZelleEinePalette, ffnumber, 82);
      CloseFile (DateiAusgabe);
      end;

  StatusBar1.SimpleText := 'Dateien wurden geöffnet';
end;

//Speichern in Dateien
procedure TForm1.MenueSpeichernClick(Sender: TObject);
var
  DateiEingabe: TextFile;
  DateiAusgabe: TextFile;
  DateiName: string;
begin
  If MessageDlg ('Sollen die Werte gespeichert werden?',
     mtInformation,[mbYes,mbNo],0) = mrYes then
    begin
    If SaveDialog1.Execute then
        begin                     //Eingabewerte speichern
          DateiName := SaveDialog1.FileName;
          AssignFile (DateiEingabe, DateiName);
          Rewrite (DateiEingabe);   
          WriteLn (DateiEingabe, EditRegallaengeEingabe.Text); 
          WriteLn (DateiEingabe, EditLagerhoeheEingabe.Text);
          WriteLn (DateiEingabe, EditPalettenlastEingabe.Text);
          CloseFile (DateiEingabe);
        end;
    end
    else
    exit;

    If SaveDialog1.Execute then
          begin
            DateiName := SaveDialog1.FileName;
            AssignFile (DateiAusgabe, DateiName);
            Rewrite (DateiAusgabe);
            WriteLn (DateiAusgabe, EditRegalkosten.Text);
            WriteLn (DateiAusgabe, EditOptimaleZellenbreite.Text);
            WriteLn (DateiAusgabe, EditRegallaengeAusgabe.Text);
            WriteLn (DateiAusgabe, EditRegalhoeheAusgabe.Text);
            WriteLn (DateiAusgabe, EditITraeger.Text);
            WriteLn (DateiAusgabe, Label54.Caption);  
            WriteLn (DateiAusgabe, Label55.Caption);
            WriteLn (DateiAusgabe, Label56.Caption);
            WriteLn (DateiAusgabe, Label57.Caption);
            WriteLn (DateiAusgabe, Label58.Caption);
            WriteLn (DateiAusgabe, Label59.Caption);
            WriteLn (DateiAusgabe, Label62.Caption);
            WriteLn (DateiAusgabe, Label63.Caption);
            WriteLn (DateiAusgabe, Label64.Caption);
            WriteLn (DateiAusgabe, Label65.CAption);
            WriteLn (DateiAusgabe, Label66.Caption);
            WriteLn (DateiAusgabe, Label67.Caption);
            WriteLn (DateiAusgabe, Label68.Caption);
            WriteLn (DateiAusgabe, Label69.Caption);
            WriteLn (DateiAusgabe, Label70.Caption);
            WriteLn (DateiAusgabe, Label71.Caption);
            WriteLn (DateiAusgabe, Label72.Caption);
            WriteLn (DateiAusgabe, Label73.Caption);
            WriteLn (DateiAusgabe, Label74.Caption);
            WriteLn (DateiAusgabe, Label75.Caption);
            WriteLn (DateiAusgabe, Label76.Caption);
            WriteLn (DateiAusgabe, Label77.Caption);
            WriteLn (DateiAusgabe, Label78.Caption);
            WriteLn (DateiAusgabe, Label79.Caption);
            CloseFile (DateiAusgabe);
          end;
  StatusBar1.SimpleText := 'Dateien wurden erfolgreich gespeichert';
end;

end.



Ich hoffe es ist einigermaßen verständlich. Danke

lg
Masta_Rafa Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 10.09.08 15:34 
Habs jetzt hinbekommen,

speichert und ließt jetzt alle Daten richtig. Selbst bei vielen Nachkommastellen!

lg
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mi 10.09.08 15:40 
user profile iconMasta_Rafa hat folgendes geschrieben:
Habs jetzt hinbekommen,

speichert und ließt jetzt alle Daten richtig. Selbst bei vielen Nachkommastellen!

lg

Und wie? :)