was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews
 sonstiges ¦  tutorials ¦  Add&Win Gewinnspiel

Tips (1541)

Dateien (137)
Datenbanken (90)
Drucken (35)
Grafik (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Mathematik (76)
Multimedia (45)
Oberfläche (107)
Objekte/
ActiveX (51)

OpenTools API (3)
Sonstiges (126)
Strings (83)
System (266)
VCL (242)

Tips sortiert nach
Komponente


Tip suchen

Tip hinzufügen

Add&Win Gewinnspiel

Werbung

53 Visitors Online


 
...TFileStream verwenden?
Autor: Simon Grossenbacher
Homepage: http://www.swissdelphicenter.ch
[ Tip ausdrucken ]  

Tip Bewertung (25):  
     


type

  
TPerson = record
    
Name: string[50];
    vorname: string[50];
  end;

  TComputer = record
    
Name: string[30];
    cpu: string[30];
  end;

var
  
Form1: TForm1;

  Person: TPerson;
  Computer: TComputer;

  Stream: TFileStream;

implementation

{$R *.DFM}

//Speichern resp. Erstellen von Datei
//Save or create the file
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    
Stream := TFileStream.Create('c:\test.dat', fmOpenReadWrite);
  except
    
Stream := TFileStream.Create('c:\test.dat', fmCreate);
  end;

  //2 Einträge pro Record
  //save 2 records for TPerson and TComputer
  
Person.Name    := 'Grossenbacher';
  Person.vorname := 'Simon';
  Stream.WriteBuffer(Person, SizeOf(TPerson));

  Person.Name    := 'Stutz';
  Person.vorname := 'Thomas';
  Stream.WriteBuffer(Person, SizeOf(TPerson));

  Computer.Name := 'Delphi';
  Computer.cpu  := 'Intel';
  Stream.WriteBuffer(Computer, SizeOf(TComputer));

  Computer.Name := 'Win';
  Computer.cpu  := 'AMD';
  Stream.WriteBuffer(Computer, SizeOf(TComputer));

  Stream.Free;
end;

//lädt alle daten von TPerson in listbox1 und
//daten von TComputer in Listbox2

//load records from TPerson to listbox1 and
//load records from TComputer to listbox2
procedure TForm1.Button2Click(Sender: TObject);
var
  
i: Integer;
begin
  try
    
// nur lesen öffnen
    //open read only
    
Stream := TFileStream.Create('c:\test.dat', fmOpenRead);
  except
    
ShowMessage('Datei konnte nicht geladen werden.');
    Exit;
  end;

  //variable i auf anzahl Einträge setzen

  //set variable i to the record count

  //Einlesen von TPerson
  //Read records TPerson
  
for i := 2 downto do
  begin
    
Stream.ReadBuffer(Person, SizeOf(TPerson));
    Listbox1.Items.Add(Person.vorname + ' ' + Person.Name);
  end;

  //Einlesen von TComputer
  //Read Records TComputer
  
for i := 2 downto do
  begin
    
Stream.ReadBuffer(Computer, SizeOf(TComputer));
    Listbox2.Items.Add(Computer.Name + ' ' + Computer.cpu);
  end;

  Stream.Free;
end;


 

Bewerten Sie diesen Tipp:

dürftig
ausgezeichnet


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners