Home » Tutorials » Datenspeicherung » myArchiv
myArchiv
Datei auslesen
Nachdem die Archivdatei geöffnet wurde, müssen nur noch die entsprechenden Daten ausgelesen werden:
procedure ReadArchivFile(ArchivFile: ArchivTyp; newFile: String; Nummer: Integer); var Size: LongInt; f: File; gelesen: LongInt; buffer: Array[1..40000] of byte; // auch hier wäre dynamischer Speicher besser begin // Achtung, es erfolgt keine Prüfung, ob es eine Datei mit dem Index // "Nummer" überhaupt gibt. Der Index beginnt bei 0. Seek(ArchivFile.ArchivFile,StrToInt(ArchivFile.FileStart[nummer])- SizeOf(Size)); // wur springen an den Anfang der gewünschten Datei BlockRead(ArchivFile.ArchivFile,Size,SizeOf(Size)); AssignFile(f,newFile); ReWrite(f,1); gelesen:=0; while Gelesen<Size do begin if Size-Gelesen>40000 then begin BlockRead(ArchivFile.ArchivFile,Buffer,40000); BlockWrite(f,Buffer,40000); Inc(Gelesen,40000); end else begin BlockRead(ArchivFile.ArchivFile,Buffer,Size-Gelesen); BlockWrite(f,Buffer,Size-Gelesen); Gelesen:=Size; end; end; CloseFile(f); end;