Thema: Delphi dynamischen Array laden

Einzelnen Beitrag anzeigen

c64ranni

Registriert seit: 27. Okt 2006
Ort: Vomp
10 Beiträge
 
Delphi 5 Professional
 
#14

Re: dynamischen Array laden

  Alt 2. Nov 2006, 11:53
Wenn dein Array so aussieht
Delphi-Quellcode:
type
  TReihe = array[0..132] of Integer;
  TGrid = array of TReihe;
Dann könntest dus am einfachsten über einen FileStream machen, dann hast du auch gleich a bisserl a "Codierung" drinnen und nicht jeder kann die Daten einfach ändern oder lesen, indem er die Datei mitn Editor aufmacht.

So gehts mitn FileStream
Delphi-Quellcode:
procedure Speichern;
var
  I,J : Integer
  FS : TFileStream;
  mInt : Integer;
  Ver : Integer;
begin
  FS := TFileStream.Create('DATEINAME',fmCreate);
  try
    Ver := 1
    FS.WriteBuffer(Ver,sizeof(Ver));
    FS.WriteBuffer(Length(Oberarray),Sizeof(Length(Oberarray)));
    for I := Low(Oberarray) to High(Oberarray) do
    begin
      for J := 0 to 132 do
      begin
       mInt := Oberarray[I][J]
       FS.WriteBuffer(mInt,Sizeof(mInt));
       //Bei einem String musst dus anders machen
      end;
    end;
  finally
    FS.Free;
  end;
end;

procedure Laden;
var
  I,J : Integer
  FS : TFileStream;
  mInt : integer
  Ver : Integer
begin
  FS := TFileStream.Create('DATEINAME',fmread);
  try
    FS.ReadBuffer(Ver,Siezof(Ver));
    if Ver <> 1 then FEHLER!!!!!
    FS.ReadBuffer(I,Sizeof(I));
    SetLength(Oberarray,I+1);
    for I := 0 to (I-1) do
    begin
      for J := 0 to 132 do
      begin
        FS.ReadBuffer(mInt,Sizeof(mInt));
        oberarray[I][J] := mInt;
        //Bei einem String musst dus anders machen
      end;
    end;
  finally
    FS.Free;
  end;
end;
Das sollte normalerweise funktionieren.
Einzige Ausnahme, bei einem String musst mehr in den Stream speichern, sonst funktiniert das mit jedem Datentyp. und du bist flexibler bei Erweiterungen, mit Versionsnummer!
  Mit Zitat antworten Zitat