5748178 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$ cat -n unpack1.bas
   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: 
5748179 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2000-05-09 21:10:31