Thema: Delphi Blockread mal wieder

Einzelnen Beitrag anzeigen

dazar_t

Registriert seit: 1. Dez 2007
Ort: NRW
118 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Blockread mal wieder

  Alt 14. Feb 2008, 23:01
Also ich habe noch ein tutorial gefunden dort wird dieser Code gezeigt
Delphi-Quellcode:
procedure OpenArchivFile(ArchivName: string; var ArchivFile: ArchivTyp);
var I, q: Integer;
  Size: LongInt;
  AktPos: integer;
  s: string;
  SSize: byte; // Länge des Strings
begin
  ArchivFile.FileStart:=TStringList.Create;
  ArchivFile.FileNames:=TStringList.Create;

  if not FileExists(ArchivName) then Exit;

  AssignFile(ArchivFile.ArchivFile, ArchivName);
  ReSet(ArchivFile.ArchivFile,1);

  { Erste Datei }
  BlockRead(ArchivFile.ArchivFile, SSize, SizeOf(SSize));
  // zuerst wird ausgelesen, wie groß der Dateiname ist
  SetLength(s,SSize);
  // dann wird S diese Länge zugewiesen
  BlockRead(ArchivFile.ArchivFile,s[1],SSize);
  // anschließend kann der Dateiname aus der Archivdatei
  // ausgelesen werden.

  BlockRead(ArchivFile.ArchivFile,Size,SizeOf(Size));
  // die Größe der Datei

  ArchivFile.FileNames.Add(s);
  // der Dateiname
  ArchivFile.FileStart.Add(IntToStr(SSize+SizeOf(SSize)+SizeOf(Size)));
  // wo beginnen die Daten der ersten Datei?

  AktPos:=SSize+SizeOf(SSize)+SizeOf(Size)+size;
  // an welcher Stelle in der Archivdatei befinden wir uns gerade:
  // am Anfang der 2. Datei (+size)
z.B : BlockRead(ArchivFile.ArchivFile, SSize, SizeOf(SSize));
der müsste doch dann einen Block lesen der EIN Byte groß ist oder ?!

Ich glaube ich komme nicht dahinter
Daniel
  Mit Zitat antworten Zitat