Einzelnen Beitrag anzeigen

Kanne_Kaffe

Registriert seit: 10. Okt 2005
25 Beiträge
 
#1

Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 14:32
Hallo...
Ich möchte gern einen Record speichern und wieder lesen. Beim lesen der Datei kommt es aber zu der Meldeung:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00453E35 in Modul 'Project1.exe'. Lesen von Adresse 00000005'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Ich bin leider zu doof den Fehler zufinden. Ich hoffe einer von Euch kann mir helfen. Hier mal mein Code
Delphi-Quellcode:
type
  pFileInfo = ^TFileInfo;
  TFileInfo = Packed Record
    Name: String;
    Adresse: String;
    Count: Cardinal; // ist grad nicht so wichtih -> wird später benötigt
    end;

var
  Form1: TForm1;
  FileInfo: pFileInfo;
  F: File of pFileInfo;

implementation

{$R *.dfm}
procedure SchreibeDatei(Filename, Name, Adresse: String; Count: Cardinal);
var
  I: Integer;
begin
  New(FileInfo);
  FileInfo.Name := Name;
  FileInfo.Adresse := Adresse;
  FileInfo.Count := Count;

  AssignFile (F, Filename);
  ReWrite(F);
  for I := 1 to 3 do
    write(F, pFileInfo(I));

  CloseFile(F);
  Dispose(FileInfo);
end;

function HoleAdresse(Filename, Name: String): String;
begin
  New(FileInfo);
  AssignFile(F, Filename);
  Reset(F);
  Read(F, FileInfo);
  CloseFile(F);
  Result := FileInfo.Adresse;
  Dispose(FileInfo);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SchreibeDatei('.\Adr.dat', 'Ulli', 'Zuhause', 0); // Einen Eintrag speichern

  showmessage(HoleAdresse('Adr.dat', 'Ulli')); // ausgabe soll sein 'Zuhause'
end;
Danke schonmal im Vorraus.
  Mit Zitat antworten Zitat