5748211 [rkeene@sledge /home/rkeene/devel/archive/quickbasic]$ cat -n unpack3.bas
   1: DECLARE FUNCTION MyAlgoryth! (siz!, LenTTL!)
   2: DECLARE FUNCTION ILength$ (txt$, num!)
   3: DECLARE FUNCTION LastPart$ (t$)
   4: CLS
   5: INPUT "PackedFile-->", Pack$
   6: OPEN Pack$ FOR BINARY AS #2
   7: DIM ff AS STRING * 1000
   8: DIM nme AS STRING * 12
   9: DIM nth AS STRING * 1
  10: DIM SHARED Back AS LONG
  11: DO UNTIL LOC(2) = LOF(2)
  12: GET #2, , nme
  13: flnm$ = RTRIM$(LTRIM$(nme))
  14: CLS
  15: GET #2, , siz
  16: filsiz = siz
  17: fil$ = ""
  18: PRINT filsiz
  19: OPEN flnm$ FOR BINARY AS #1
  20: ttl$ = ILength$(flnm$, 12) + "®" + LTRIM$(RTRIM$(STR$(filsiz)))
  21: CLS
  22: FOR mm = 0 TO filsiz - 1
  23: PRINT mm
  24: PRINT LEN(ff)
  25: GET #2, , ff
  26: 'PUT #1, , ff
  27: IF LEN(ff) + mm > filsiz THEN gg$ = LEFT$(ff, filsiz - mm): place = MyAlgoryth(LEN(ff), LEN(gg$)): PRINT mm; filsiz; place: PUT #1, , gg$: GET #2, place - 1, nth: mm = mm + LEN(gg$): EXIT FOR ELSE PUT #1, , ff
  28: percn = (mm / (filsiz + 1)) * 100
  29: LOCATE 2, 1: PRINT flnm$; " is"; filsiz; "bytes long and is"; INT(percn); "percent done."; mm
  30: mm = (mm + LEN(ff)) - 1
  31: NEXT mm
  32: CLOSE 1
  33: LOOP
  34: CLOSE 1, 2, 3, 4, 5, 6, 7, 8, 9
  35: 
  36: FUNCTION ILength$ (txt$, num)
  37: IF LEN(txt$) < num THEN ILength$ = STRING$(num - LEN(txt$), 32) + txt$
  38: END FUNCTION
  39: 
  40: FUNCTION LastPart$ (t$)
  41: FOR q = LEN(t$) TO 1 STEP -1
  42: IF MID$(t$, q, 1) = "\" THEN EXIT FOR ELSE nn$ = MID$(t$, q, 1) + nn$
  43: NEXT q
  44: LastPart$ = nn$
  45: END FUNCTION
  46: 
  47: FUNCTION MyAlgoryth (num1, num2)
  48: 'PRINT LOC(2) - num1; LOC(2); num1; num2; (((LOC(2) - num1) + num2)+1)
  49: MyAlgoryth = (((LOC(2) - num1) + num2) + 1)
  50: SLEEP
  51: END FUNCTION
  52: 
5748212 [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:34