Thema: Delphi Record laden

Einzelnen Beitrag anzeigen

grader

Registriert seit: 5. Mär 2007
19 Beiträge
 
Delphi 2005 Personal
 
#11

Re: Record laden

  Alt 26. Mär 2007, 14:05
Hallo!

Danke euch erstmal für eure Hilfe! Jetzt sieht es so aus:

Delphi-Quellcode:
procedure TForm1.saverec;
var
  Stream: TStream;
  I: integer;
  Len: Longint;
begin
Stream := TFileStream.Create('c:\TMData.dat', fmCreate);
try
Len := Length(T);
Stream.Write(Len, SizeOf(Len));
for I := 0 to Length(T) - 1 do
begin
Len := Length(IntToStr(T[I].T));
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].T), Len);
Len := Length(IntToStr(T[I].M));
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].M), Len);
Len := Length(IntToStr(T[I].J));
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].J), Len);
Len := Length(T[I].Zh);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].Zh), Len);
Len := Length(T[I].Zm);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].Zm), Len);
Len := Length(T[I].B);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].B), Len);
Len := Length(T[I].T1);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].T1), Len);
Len := Length(T[I].T2);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].T2), Len);
Len := Length(T[I].T3);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].T3), Len);
Len := Length(T[I].T4);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].T4), Len);
Len := Length(T[I].P);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].P), Len);
Len := Length(T[I].N);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(T[I].N), Len);
end;
finally
Stream.Free;
end;
end;
und


Delphi-Quellcode:
procedure TForm1.loadrec;
var
  Stream: TStream;
  I: integer;
  Len: LongInt;
begin
  Stream := TFileStream.Create('c:\TMData.dat', fmOpenRead);
  try
  Stream.Read(Len, SizeOf(Len));
  SetLength(T, Len);
for I := 0 to Len - 1 do
begin
{Stream.Read(Len, SizeOf(Len));
SetLength(T[I].T, Len);
Stream.Read(PChar(T[I].T), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].M, Len);
Stream.Read(PChar(T[I].M), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].J, Len);
Stream.Read(PChar(T[I].J), Len);}

Stream.Read(Len, SizeOf(Len));
SetLength(T[I].Zh, Len);
Stream.Read(PChar(T[I].Zh), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].Zm, Len);
Stream.Read(PChar(T[I].Zm), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].B, Len);
Stream.Read(PChar(T[I].B), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].T1, Len);
Stream.Read(PChar(T[I].T1), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].T2, Len);
Stream.Read(PChar(T[I].T2), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].T3, Len);
Stream.Read(PChar(T[I].T3), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].T4, Len);
Stream.Read(PChar(T[I].T4), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].P, Len);
Stream.Read(PChar(T[I].P), Len);
Stream.Read(Len, SizeOf(Len));
SetLength(T[I].N, Len);
Stream.Read(PChar(T[I].N), Len);
end;
  finally
    Stream.Free;
  end;
end;
Jetzt markiert er folgendes rot und sagt "variable required":

Stream.Write(PChar(T[I].T), Len); Dieses Tut habe ich übrigens verwendet..
Und da steht das mit dem "^" drin und so geht es auch zu kompilieren geht nur net

Gruß
Stefan

Edit:

hab jetzt noch das hier gefunden, was ich vielleicht später mal probieren werde:

klick

Jetzt hab ich aber erstmal andere Sorgen, morgen letzte Kursarbeit in Physik
the grader
  Mit Zitat antworten Zitat