Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler beim Speichern??? (https://www.delphipraxis.net/130801-fehler-beim-speichern.html)

ichnixwissen 13. Mär 2009 13:15


Fehler beim Speichern???
 
Beim einlesen des Stringrids ließt er nur die erste Zeile ein und macht dann nicht weiter.

Delphi-Quellcode:
v:=0;
AssignFile(datei,z +'.kt');
 Reset(datei);
 m:=0;
  while not eof(datei) do
      begin
        m:=m+1;
    Read(datei,eintrag);
    with eintrag do
      begin
      stringGrid1.Cells[0,m]:= datum;
        stringGrid1.Cells[1,m]:=zahl;
        StringGrid1.Cells[2,m]:=zeit;
        Label8.Caption:= inttostr(m);
      end;
      end;
      closeFile(datei);
    v:= ((strtoint(Label8.Caption))+1);
    stringgrid1.Cells[0,v]:= Label7.Caption;
stringGrid1.Cells[1,v]:=label2.Caption;
StringGrid1.Cells[2,v]:=zeit.Caption;
end;
end;

Reinhardtinho 13. Mär 2009 13:19

Re: Fehler beim Speichern???
 
Weil du die Datei nach dem ersten Record schließt :mrgreen:

BackOrifice 13. Mär 2009 13:22

Re: Fehler beim Speichern???
 
-Gehts jetzt hier ums Speichern oder ums Lesen?

-Was ist m, was ist v?

-I/O Operationen setzt man in try..except + try..finally Teile.

-Gib den fucking Labels einen anständigen Bezeichner :/

-Je nachdem, was v ist (typisiert oder text), verhält sich read anders.

DeddyH 13. Mär 2009 13:23

Re: Fehler beim Speichern???
 
Und eine sinnvolle Einrückung erleichtert die Fehlersuche auch ungemein.

BackOrifice 13. Mär 2009 13:25

Re: Fehler beim Speichern???
 
Zitat:

Zitat von Reinhardtinho
Weil du die Datei nach dem ersten Record schließt :mrgreen:

Wie kommst du darauf?

ichnixwissen 13. Mär 2009 13:28

Re: Fehler beim Speichern???
 
es geht ums lesen. der soll die vorhanden daten in der datei ins stringgrid schreiben und die neuen werte in den labels auch ins stringgrid schreiben, aber hinten dran.
v und m sind normale integer variablen

Reinhardtinho 13. Mär 2009 13:31

Re: Fehler beim Speichern???
 
Zitat:

Zitat von BackOrifice
Zitat:

Zitat von Reinhardtinho
Weil du die Datei nach dem ersten Record schließt :mrgreen:

Wie kommst du darauf?

Ups. Hab mich verguckt.

Die Einrückung und die [zu] vielen end;s haben mich verwirrt.


@DeddyH: So ist es :mrgreen:

Klaus01 13. Mär 2009 13:33

Re: Fehler beim Speichern???
 
Delphi-Quellcode:
v:=0;
AssignFile(datei,z +'.kt');
Reset(datei);
m:=0;
while not eof(datei) do
  begin
    m:=m+1;
    Read(datei,eintrag);
    with eintrag do
      begin
        stringGrid1.Cells[0,m]:= datum;
        stringGrid1.Cells[1,m]:=zahl;
        StringGrid1.Cells[2,m]:=zeit;
        Label8.Caption:= inttostr(m);
      end;
  end;
closeFile(datei);
v:= ((strtoint(Label8.Caption))+1);
stringgrid1.Cells[0,v]:= Label7.Caption;
stringGrid1.Cells[1,v]:=label2.Caption;
StringGrid1.Cells[2,v]:=zeit.Caption;
//end; wozu diese ends gehören kann man hier nicht erkennen
//end;
Ansonsten sieht für mich die Schleife o.k. aus.
Bist Du sicher das in der Datei mehr als 1 Datensatz ist?
Bist Du Deinen Code mal mit F7 oder F8 durchgegangen und hast Dir die
Variablen angeschaut?

Grüße
Klaus

nahpets 13. Mär 2009 13:35

Re: Fehler beim Speichern???
 
Zitat:

Zitat von BackOrifice
Zitat:

Zitat von Reinhardtinho
Weil du die Datei nach dem ersten Record schließt :mrgreen:

Wie kommst du darauf?

Über die nicht so ganz elegante Einrückung gestolpert, hatte ich im ersten Moment auch gedacht.

Von welchem Type ist Eintrag?

Eventuell hilft ja Reset(datei,SizeOf(Eintrag)), damit das Programm weiß, wieviel es bei einem Read lesen soll. Ohne Größenangabe werden 128 Byte gelesen. Wenn die Datei kleiner ist, ist sie beim ersten Lesen weg. Von welchem Typ ist Datei?
Delphi-Quellcode:
var
  Datei: TextFile;
// oder
  Datei: File of Char
// oder
  Datei: File of Eintrag;
// oder
...
[edit]hat mal wieder Schreibfehler gefunden[/edit]

ichnixwissen 13. Mär 2009 13:39

Re: Fehler beim Speichern???
 
Delphi-Quellcode:
type Teintrag = record
        zahl:string[20];
        zeit: string[20];
        datum: string[20];
     end;

var

datei: file of Teintrag;
eintrag: Teintrag;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 Uhr.
Seite 1 von 3  1 23      

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