1: DECLARE FUNCTION ILength$ (txt$, num!) 2: DECLARE FUNCTION LastPart$ (t$) 3: CLS 4: INPUT "PackedFile-->", Pack$ 5: OPEN Pack$ FOR BINARY AS #2 6: DIM ff AS STRING * 1000 7: DIM nme AS STRING * 12 8: DIM nth AS STRING * 1 9: DO UNTIL LOC(2) = LOF(2) 10: GET #2, , nme 11: Flnm$ = RTRIM$(LTRIM$(nme)) 12: DO UNTIL ff = "¯" 13: GET #2, , nth 14: PRINT nth; " <> ¯"; dbd; LOC(2) 15: IF nth = "¯" THEN dbd = 0: EXIT DO 16: IF dbd = 1 AND nth <> "¯" THEN fil$ = fil$ + nth 17: IF nth = "®" THEN dbd = 1 18: LOOP 19: filsiz = VAL(fil$) 20: PRINT filsiz 21: OPEN Flnm$ FOR BINARY AS #1 22: FOR mm = 0 TO (filsiz - 1) 23: GET #2, , ff 24: 'PUT #1, , ff 25: IF LEN(ff) + mm > filsiz THEN gg$ = LEFT$(ff, filsiz - mm): PUT #1, , gg$: GET #2, (LOC(2) - (LEN(ff) - LEN(gg$)) - 1), nth: mm = mm + LEN(gg$): EXIT FOR ELSE PUT #1, , ff 26: percn = (mm / (filsiz + 1)) * 100 27: LOCATE 2, 1: PRINT Flnm$; " is"; filsiz; "bytes long and is"; INT(percn); "percent done." 28: mm = (mm + LEN(ff)) - 1 29: NEXT mm 30: CLOSE 1 31: LOOP 32: CLOSE 1, 2, 3, 4, 5, 6, 7, 8, 9 33: 34: FUNCTION ILength$ (txt$, num) 35: IF LEN(txt$) < num THEN ILength$ = STRING$(num - LEN(txt$), 32) + txt$ 36: END FUNCTION 37: 38: FUNCTION LastPart$ (t$) 39: FOR q = LEN(t$) TO 1 STEP -1 40: IF MID$(t$, q, 1) = "\" THEN EXIT FOR ELSE nn$ = MID$(t$, q, 1) + nn$ 41: NEXT q 42: LastPart$ = nn$ 43: END FUNCTION 44: |