Einzelnen Beitrag anzeigen

Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#12

Re: 2 dimensionalen Array in Datei speichern und wieder lade

  Alt 28. Mär 2005, 20:10
Zitat von mytar:
Dein Code funktioniert einwandfrei, wenn ich ihn auf Dateien die ich vorher mit SaveToFile gespeichert habe. Will ich aber irgendeine Datei, z.B. *.zip öffnen, sollte er ja
FileName + ' ist keine gültige Datei vom Typ TMyArray ausgeben.
Also geht es dir jetzt um eine Fehlerbehandlung?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  IDENT_TMYARRAY = 'TMyArray';
  BUF_SIZE = 4096;
type
  TMyArray = array[1..12, 1..2] of String;

  procedure LoadFromFile(var MyArray: TMyArray; const FileName: String);
  var
    Stream: TFileStream;
    Reader: TReader;
    I, J: Integer;
  begin
    Stream := TFileStream.Create(FileName, fmOpenRead);
    try
      Reader := TReader.Create(Stream, BUF_SIZE);
      try
        Reader.ReadSignature;
        if Reader.ReadIdent <> IDENT_TMYARRAY then
          raise Exception.Create(FileName + ' ist keine gültige Datei vom Typ TMyArray.');
        for I := 1 to 12 do
          for J := 1 to 2 do
            MyArray[I, J] := Reader.ReadString;
      finally
        Reader.Free;
      end;
    finally
      Stream.Free;
    end;
  end;

var
  MyArray: TMyArray;
begin

  if OpenDialog1.Execute then
  begin
    try
      LoadFromFile(MyArray, OpenDialog1.FileName);
    except
      on E: Exception do
        ShowMessage('Folgender Fehler ist aufgetreten: ' + E.Message);
    end;
  end;

end;
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat