Datei Packet->Datei auslesen
Übersicht

![]() |
the FR3AKBetreff: Datei Packet->Datei auslesen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo...ich bastele mir gerade einen File Archiver der Mehrere Dateien zu einer zusammen packt...leider habe ich ein Problem beim Entpacken aus der großen Datei:
Meine Archiv Datei ist immer so aufgebaut: Code: [AUSKLAPPEN] [Name der Datei]
[Größe in Bytes] [Datei] [Name der Datei] [Größe in Bytes] [Datei] usw. Wenn ich jetzt nach einem Dateiname in der Datei suche und dann eine Zeile weiter unten die Dateigröße auslese und das ganze dann in eine Bank lesen will kommt die Fehlermeldung "Offset out of Range" ich weiß leider nicht was die Meldung bedeutet noch wie man das beheben kann... Hier mal die Funktion zum auslesen aus einer Archiv Datei: Code: [AUSKLAPPEN] Function GetFromArchive(resFile$,Arch$)
getit=ReadFile(Arch$) While Not Eof(getit) name$ = ReadLine(getit) If name$=resFile$ Then ;wenn es der gesuchte name ist... sizeof = ReadLine(getit) ;datei größe auslesen curpos=FilePos(getit) ;position in der Datei... End If Wend ResizeBank(newbank,sizeof) ;größe der Bank auf die größe der zu ladenden Datei setzen archfile=ReadFile(Arch) ReadBytes(newbank,archfile,curpos,sizeof) ;auslesen ab der position in der Datei closefile archfile newfile=WriteFile(resfile$) WriteBytes(newbank,newfile,0,sizeof) ;alles in eine neue datei schreiben CloseFile newfile End Function Die Parameter: resFile: Die Datei die entpackt werden soll Arch: Die Archiv Datei vielen dank für eure hilfe... |
||
![]() |
Willi die Rübe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Simpler Fehler: Die Größeangabe bei ReadBytes beginnt bei 1 und die Größenangabe bei ResizeBank bei 0. Somit ist die Bank immer genau 1 Byte zu klein.
So dürfte es funktionieren: Code: [AUSKLAPPEN] ResizeBank(newbank,sizeof+1)
Mfg Willi ![]() Edit: Das ist Quatsch was hier steht^^ ![]() |
||
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX At the Farewell Party visit: MySpace | Homepage |
- Zuletzt bearbeitet von Willi die Rübe am So, Jul 20, 2008 23:13, insgesamt einmal bearbeitet
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Leider nicht...kommt immernoch der gleiche Fehler...
trotzdem Danke |
||
![]() |
Willi die Rübe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achso ja, hab den richtigen Fehler gefunden. Der Startparameter bei ReadBytes ist für die Bank, nicht für die Datei. So müsste es funktionieren:
Code: [AUSKLAPPEN] SeekFile archfile, curpos
ReadBytes(newbank,archfile,0,sizeof) ;auslesen ab der position in der Datei Mfg Willi |
||
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX At the Farewell Party visit: MySpace | Homepage |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah danke! Funktioniert jetzt perfekt...und schnell ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group