Einzelnen Beitrag anzeigen

Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#1

array in typisierte datei speichern?

  Alt 24. Mär 2005, 22:11
Hi,
Ich habe ein kleines Problem mit dem Speichern meiner Daten. Und zwar handel es sich bei den Daten um zwei eindimensionale Arrays die ich in eine Datei schreiben möchte.
da ich bisher nur (und auch nur einmal) mit typisierten Dateien gearbeitet hab (was das speichern von Daten angeht) wollte ich das jetzt auch wieder so machen und hab mir mal ein bisschen was zusammengereimt. Allerdings erhalte ich beim Versuch die gespeicherten Daten wieder zu lesen einen Error
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project2.exe ist eine Exception der Klasse EInOutError aufgetreten. Meldung: 'E/A-Fehler 103'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Jetzt weiss ich aber nicht ob der Fehler schon direkt beim speichern im Prinzip vorprogrammiert wird, oder ob beim laden wirklich etwas schief läuft.

Delphi-Quellcode:
//Speichern
procedure TForm1.Button1Click(Sender: TObject);
type TLoecher = record
  par: array [1..18] of Integer;
  hdcp: array [1..18] of Integer;
end;
var i: Integer;
    datei: file of TLoecher;
    datensatz: TLoecher;
    pfad: String;
begin
  if savedialog1.execute then begin
     pfad := savedialog1.filename;
     AssignFile (datei, pfad);
     if FileExists(pfad) then ReSet(datei)
     else ReWrite(datei);
     seek(datei,0);
     for i:=1 to 18 do begin
       datensatz.par[i]:=strtoint(TEdit(FindComponent('par'+inttostr(i))).Text);
       datensatz.hdcp[i]:=strtoint(TEdit(FindComponent('hdcp'+inttostr(i))).Text);
     end;
     write(datei,datensatz);

     CloseFile(datei);
  end;

end;

//Laden
procedure TForm1.Button2Click(Sender: TObject);
type TLoecher = record
  par: array [1..18] of Integer;
  hdcp: array [1..18] of Integer;
end;
var i: Integer;
    datei: file of TLoecher;
    datensatz: TLoecher;
    pfad: String;
begin
  if opendialog1.execute then begin
     pfad := opendialog1.filename;
     AssignFile (datei, pfad);
     seek(datei,0); // <-- Fehler
     Read(datei, datensatz);
     for i:= 1 to 18 do begin
       TEdit(FindComponent('par'+inttostr(i))).Text:=inttostr(datensatz.par[i]);
       TEdit(FindComponent('hdcp'+inttostr(i))).Text:=inttostr(datensatz.hdcp[i]);
     end;
     CloseFile(datei);
  end;
end;
Hat jemand spontan ne Idee?


schonmal danke im vorraus
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat