Einzelnen Beitrag anzeigen

barf00s
(Gast)

n/a Beiträge
 
#4

Re: Tfilestream.write(buffer,30)

  Alt 1. Jun 2005, 12:42
machmer das lesen gleich noch mit, bevord fragst

Delphi-Quellcode:
procedure ReadStringFromStream(Stream: TStream; var sText: string);
var
  sText: string;
  iLength: integer;

begin
  Stream.Read(iLength, 4);
  SetLength(sText, iLength);
  Stream.Read(Pointer(sText)^, iLength); // oder wieder Stream.Read(sText[1], iLength);
end;
records fungsionieren in der regel genauso wie primitive daten die'd lesen/schreiben willst, solang keine pointer oder strings drin vorkommen

also

Delphi-Quellcode:
type
  TRecord = record
    iZahl: integer;
    iBuchstabe: char;
    dMadde: double;
  end;

var
  xRecord: TRecord;
dann kannst

Stream.Write(xRecord, SizeOf(xRecord)); oder lesen...
Stream.Read(xRecord, SizeOf(xRecord)); SizeOf(xRecord) wäre in dem fall hier 13, da sizeof(iZahl) = 4 + sizeof(iBuchstabe) = 1 + sizeof(dMadde) = 8 = 13 :) [edit=Luckie]Delphi-Tags Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat