Autor |
Nachricht |
laforma
|
|
Titel:
Verfasst am: 25.07.2009, 00:50 Uhr
|
|
Retrokenner
Anmeldungsdatum: 01. Jun 2007
Beiträge: 394
Status: Offline
|
|
hier ist der quellcode, hab ihn eben noch mit kommentaren ergaenzt, da die powerbasic syntax zu weilen verwirrend sein kann...
------------------------------------------------------------------------------------
' Dateioperation, öffnen Der Streamdateien und anlegen eines entsprechenden Ordners
OPEN COMMAND$+".DIR" FOR BINARY AS #1
OPEN COMMAND$+".BIN" FOR BINARY AS #2
MKDIR COMMAND$
'Dateikopf einlesen, dieser besteht aus dem Kopf "LDIR" und einem DWORD,
'der der Dateianzahl innerhalb des Streams entspricht
GET$ #1, 4, LDIR$
GET$ #1, 4, Dateien$
'Normalerweise beginnt hier bereits der erste Dateiindex, da ich keine Größeninformationen finden konnte,
'mußte ich die Größe, aus zwei aufeinanderfolgenden Startoffsets selbst kalkulieren,
'daher gehört der erste Starteintrag nicht in die Schleife
GET$ #1, 4, Start$
Start& = 0
'CVL wandelt ein DWORD (String) in ein Long (Number)
Dateien = CVL(Dateien$)
FOR Datei = 1 TO Dateien
'An dieser Stelle hätte ich die Dateigröße erwartet,
'aber der Wert unterschreitet die eigentliche Größe zum Teil deutlich
GET$ #1, 4, Unbekannt$
'Der Dateiname ist DOS-komform (8.3) also 12 Zeichen lang. Ist der Dateiname kürzer,
'folgt ihm ein Byte mit Wert null, die restlichen Zeichen dahinter sind mir ein Rätsel,
'hab sie ebenfalls rausfallen lassen
GET$ #1, 12, Datei$
IF INSTR(Datei$, CHR$(0)) THEN Datei$ = LEFT$(Datei$, INSTR(Datei$, CHR$(0)))
PRINT "Entpacke Datei";Datei;"von";Dateien;": ";Datei$
'Die Abfrage muss rein, ansonsten schiess ich bei der letzten Datei übers Dateiende raus,
'da dann kein weiteres Dateioffset mehr vorhanden ist. Anstelle dessen setze ich zum Schluß die
'Größe der BIN Datei als Ende (vom Endoffset wird ja immer der Startoffset abgezogen um die Größe
'zu ermitteln.
IF Datei < Dateien THEN
GET$ #1, 4, Ende$
Ende& = CVL(Ende$)
ELSE
Ende& = LOF(2)
END IF
Groesse& = Ende& - Start&
'Öffnet bzw erstellt im Ordner STREAM1 die entsprechende ermittelte Datei
OPEN COMMAND$+"\"+Datei$ FOR BINARY AS #3
'PowerBasic kann Strings mit bis zu 32kbyte verwalten, daher muss hier in Paketen die BIN Datei gelesen werden
WHILE Groesse& > 32000
GET$ #2, 32000, Daten$
PUT$ #3, Daten$
Groesse& = Groesse& - 32000
WEND
GET$ #2, Groesse&, Daten$
PUT$ #3, Daten$
CLOSE #3
'Neuer Startoffset ist alter Endoffset
Start& = Ende&
NEXT Datei
'Das wars...
PRINT "Das wars..."
CLOSE #1, #2
------------------------------------------------------------------------------------
viel spass damit |
|
|
|
|
|
Mr.Wolna
|
|
Titel:
Verfasst am: 25.07.2009, 03:19 Uhr
|
|
Retrohling
Anmeldungsdatum: 08. Aug 2008
Beiträge: 24
Status: Offline
|
|
schaut gar nicht so schwer aus, nur das mir die syntax natürlich völlig unbekannt ist. xD
Danke! |
|
|
|
|
|
Mr.Wolna
|
|
Titel:
Verfasst am: 28.07.2009, 02:12 Uhr
|
|
Retrohling
Anmeldungsdatum: 08. Aug 2008
Beiträge: 24
Status: Offline
|
|
So hab mir mal die Syntax angeschaut, bzw. mich damit näher beschäftigt (aber nur ein bisschen ).
sag mal müssen die DIR Files auch mit geöffnet werden. Dort ist die Struktur drin oder? Ich frage nur, weil ich Progs kenne die die DIR nicht brauchen.
MFG |
|
|
|
|
|
laforma
|
|
Titel:
Verfasst am: 28.07.2009, 09:58 Uhr
|
|
Retrokenner
Anmeldungsdatum: 01. Jun 2007
Beiträge: 394
Status: Offline
|
|
in der dir datei befindet sich die info, wie die zu entpackende datei heisst, an welcher dateiposition innerhalb der bin datei die datei startet und wie gross diese ist. du brauchst die dir datei definitiv. achte mal bei den get$ befehlen auf die #1, dass ist das dateihandle fuer die dir datei. mit #2 greift man auf die bin datei zu und mit #3 auf die zu erstellende zieldatei. |
|
|
|
|
|
Mr.Wolna
|
|
Titel:
Verfasst am: 28.07.2009, 22:12 Uhr
|
|
Retrohling
Anmeldungsdatum: 08. Aug 2008
Beiträge: 24
Status: Offline
|
|
hm verstehe. aber irgenwas stimmt leider nicht mit den output. kein vag file kriege ich zum laufen...immer noch nicht. das komische sit, die files die ich bei einen tool mit viel fehler rasukriege und 49 mgb groß sit lässt sich abspilen auch wenn viel zu schnell und fehlerhaft -.-
sry für RS bin siet 48 studne auf den beinen. |
|
|
|
|
|
Mr.Wolna
|
|
Titel:
Verfasst am: 04.08.2009, 21:57 Uhr
|
|
Retrohling
Anmeldungsdatum: 08. Aug 2008
Beiträge: 24
Status: Offline
|
|
nix neues hier? |
|
|
|
|
|
NexXxus86
|
|
Titel:
Verfasst am: 07.08.2009, 16:54 Uhr
|
|
Retrokenner
Anmeldungsdatum: 20. Apr 2007
Beiträge: 388
Status: Offline
|
|
|
|
|
Mr.Wolna
|
|
Titel:
Verfasst am: 08.08.2009, 09:43 Uhr
|
|
Retrohling
Anmeldungsdatum: 08. Aug 2008
Beiträge: 24
Status: Offline
|
|
hab ich schon, geht nicht. ich weiß sollte es, aber es tut es nicht und langsam verzweifele ich hier. Die Arbeit ist grad echt stecken geblieben hier. |
|
|
|
|
|
NexXxus86
|
|
Titel:
Verfasst am: 16.08.2009, 22:55 Uhr
|
|
Retrokenner
Anmeldungsdatum: 20. Apr 2007
Beiträge: 388
Status: Offline
|
|
hast du die ISO als datei gescannt oder gemounted und CD/DVD scan gemacht?
als Datei Scannen geht eigentlich immer.
falls nicht dann scann die Dateien/Bigfiles wo die Sprachsamples drin sind, das sollte eigentlich immer klappen.
Wenn nicht dann liegts am Audioformat das nicht unterstützt wird. |
|
|
|
|
|
Mr.Wolna
|
|
Titel:
Verfasst am: 16.08.2009, 23:00 Uhr
|
|
Retrohling
Anmeldungsdatum: 08. Aug 2008
Beiträge: 24
Status: Offline
|
|
hab ich bzw. nicht nötig dnak den tool von laforma, leider war die arbeit umsonst, da ich eben die soundfiles nicht aukriege -.- |
|
|
|
|
|
|