Guten Tag
Da ich in meinen Programme häufig eine mengen einzelner dateien benutze dachte ich mir es gehört zu der feinen englischen art diese in ein archiv zu packen. Da dachte ich mir mache ich mir doch das archiv selber. Ich habe auch ein Tutorial im Internet gefunden doch leider verstehe ich ein paar zeilen nicht und hoffe auf hilfe hier erstmal der Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure OpenArchivFile(ArchivName: string; var ArchivFile: ArchivTyp); var I, q: Integer; Size: LongInt; AktPos: integer; s: string; SSize: byte; begin ArchivFile.FileStart:=TStringList.Create; ArchivFile.FileNames:=TStringList.Create;
if not FileExists(ArchivName) then Exit;
AssignFile(ArchivFile.ArchivFile, ArchivName); ReSet(ArchivFile.ArchivFile,1);
BlockRead(ArchivFile.ArchivFile, SSize, SizeOf(SSize)); SetLength(s,SSize); BlockRead(ArchivFile.ArchivFile,s[1],SSize); BlockRead(ArchivFile.ArchivFile,Size,SizeOf(Size)); ArchivFile.FileNames.Add(s); ArchivFile.FileStart.Add(IntToStr(SSize+SizeOf(SSize)+SizeOf(Size))); AktPos:=SSize+SizeOf(SSize)+SizeOf(Size)+size; |
Ich verstehe nicht was BlockRead(ArchivFile.ArchivFile, SSize, SizeOf(SSize)); bringt ?! Weil SSize ist ja keine größe zugeordnet also müsste er doch garkeinen block lesen. Genauso wie BlockRead(ArchivFile.ArchivFile,Size,SizeOf(Size));
Moderiert von
jasocul: Highlight- durch Delphi-Tags ersetzt