Thema: Delphi Pointer :\

Einzelnen Beitrag anzeigen

Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#6

Re: Pointer :\

  Alt 13. Aug 2004, 12:43
Dieses ganze AssignFile-reset-rewrite-closeFile-Zeugs stammt
noch aus der Pascal-Zeit. Ich hab's damals auch so gelernt
und hatte kein Bock umzusteigen, aber das mit den Filestreams
ist wirklich (!) ganz einfach und bietet viele Vorteile
der Einfachheit und vor allem in der Geschwindigkeit.
Wenn Du z.B. einen Dateisplitter für beliebige Dateien schreiben möchtest
(siehe Anhang) dann kennst Du die Struktur der Dateien meistens gar nicht.
FileStreams sehen Strukturen einfach als eine Menge von einzelnen
Bytes an. Möchtest Du z.B einen Record speichern, dann machst Du das so:
Delphi-Quellcode:
type TMeinRecord = record
  buchstabe : Char;
  alter : byte;
  groesse : real;
  Daten : array[0..7] of byte;
end;
//...
  var MeinRecord : TMeinRecord;
//...
procedure schreibeMeinRecordInDatei;
  var Filestream: TFileStream;
begin
// FileStream:= TFileStream.create(<Dateiname>, <Zugriff auf Datei>);
   FileStream:= TFileStream.create('C:\test.dat', fmCreate OR fmShareExclusive);
// FileStream.write(<dantenquelle>, <anzahl der bytes>)
  FilStream.write(MeinRecord, SizeOf(TMeinRecord);
// Dateizugriff freigeben
  FileStream.free;
end;
Vorteile von der Pascal-Variante sind mir nicht bekannt. Hab' das aus dem
Kopf geschrieben, ergo ungetestet.
Nachtrag: Musst natürlich noch eventuelle
Exceptions abfangen.
Angehängte Dateien
Dateityp: zip disksplit.zip (211,5 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat