Einzelnen Beitrag anzeigen

Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#7

AW: Record Array speichern und lesen...Error

  Alt 11. Sep 2010, 14:04
Ups, was sehen meine Äugelein?

Der Fehler ist schon in der Write Routine. Da werden die Nummer der Datei (latestFileVersion) und die Recordnummern(Number of Records->num) nicht gespeichert oder gleich mit dem Array Inhalt überschrieben. Jedenfalls felhen in der Datei die beiden Zahlen 3 für Version und 3 bzw. 2 für die Indexe:
Delphi-Quellcode:
Const
   LatestFileVersion = 3;
//......
.......
procedure TForm1.WriteFile(filename:string);
var
  fil: file;
  i: integer;
  num: byte;
const ver: byte = LatestFileVersion; //<- Const LatestFileVersion = 3; steht nicht in der Datei

    procedure WriteString(s:ShortString);
    begin
     BlockWrite(fil,s,succ(length(s)));
    end;

begin
   assignFile(fil,filename); rewrite(fil,1);
   BlockWrite(fil,ver,sizeof(ver));
   num:=length(VBilArray);
   Label8.Caption:=inttostr(num)+' '+inttostr(ver);
   BlockWrite(fil,num,sizeof(num)); //<- steht auch nicht in der MArray.txt
      for i:=0 to high(VBilArray) do
        with VBilArray[i] do begin
        WriteString(Schuldsum);
        WriteString(Rate);
        WriteString(inttostr(RFaellig));
        WriteString(Abbuchungstag);
        end;
   CloseFile(fil);
end;
//---------------------------------------------------------
procedure TForm1.Button6Click(Sender: TObject);
begin
WriteFile('MArray.txt');
end;

Geändert von Codix32 (11. Sep 2010 um 14:13 Uhr) Grund: Falsche Eingabe
  Mit Zitat antworten Zitat