home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / COMPRESS / CMPRSS.ZIP / CMPRSS.PRG < prev    next >
Encoding:
Text File  |  1990-07-11  |  7.1 KB  |  295 lines

  1. set scoreboard off
  2. pubstuff()
  3. cls(23,"▒")
  4. declare theword[2]
  5. theword[1] = "Compress Them All"
  6. theword[2] = "by Michael Kingsley Fosse"
  7. set color to n/bg
  8. alert(theword,false,.1,true,16,42)
  9. chdir("\")
  10. stsize = diskspace()
  11. subs = filecount("*.*",16)
  12. declare subd[subs+1],smalled[subs+1]
  13. afill(smalled,.f.)
  14. temp = findfirst("*.*",16)
  15. for i = 1 to subs
  16.     subd[i] = temp
  17.     temp = findnext()
  18. next
  19. subd[subs+1] =""
  20. for _A = 1 to subs + 1
  21.     _aa = subd[_a]
  22.     chdir("\"+_aa)
  23.     if qu_yn("Compress EXE's in "+if(_a = subs+1,"Root",_AA)+ " directory? ")
  24.         x = curdir()
  25.         altd()
  26.         n = adir("*.EXE")
  27.         if n > 0
  28.             declare file[n]
  29.             adir("*.exe",file)
  30.             smalled[_a] = true
  31.             save screen to fred
  32.             for _B = 1 to n
  33.                 _BB = "LZEXE "+file[_B]
  34.                 setcolor("B/W")
  35.                 clear
  36.                 overlay(_BB,0,0,0)
  37.             next
  38.             restore screen from fred
  39.         endif
  40.      endif
  41. next
  42. if qu_yn("Want to delete the 'OLD' files? ")
  43. set color to r/w
  44. alert("Deleting *.OLD",false,.1,true)
  45. for _a = 1 to subs + 1
  46.     if smalled[_a]
  47.         _aa = subd[_a]
  48.         chdir("\"+_aa)
  49.         x = curdir()
  50.         overlay("Del *.old",128,0,0)
  51.     endif
  52. next
  53. ensize = diskspace()
  54. alert("Gone from "+alltrim(str(stsize))+" to "+alltrim(str(ensize)),false,.1,true)
  55. endif
  56. chdir("\")
  57. set cursor on
  58. return
  59.  
  60. ************************************************
  61. *
  62. *   The following are from my personal lib,
  63. *   feel free to use at will
  64. *
  65. *************************************************
  66.  
  67.  
  68. *!*********************************************************************
  69. *!
  70. *!       Function: ALERT()
  71. *!
  72. *!*********************************************************************
  73. FUNCTION Alert
  74. PARAMETERS theword, ak, ink, keep, tlr, tlc
  75. PRIVATE counter, ak_msg, cox, longest, rsvp, height, wid, rax, ;
  76.     COL, m_row, m_col, cur_color,old_color, reverse, temp_scr, keep_on_scr
  77. IF TYPE("ak") = "U"
  78.     ak = .T.
  79. ENDIF
  80. IF TYPE("ink") = "U"
  81.     ink = 0
  82. ENDIF
  83. IF TYPE("keep") = "U"
  84.     keep_on_scr = .f.
  85. ELSE
  86.     keep_on_scr = keep
  87. ENDIF
  88. temp = pcount()
  89. ak_msg = "Press any key to continue"
  90. ak_msg2 = "..."
  91. counter = LEN(theword)
  92. longest = LEN(ak_msg+ak_msg2)
  93. long_2 = longest / 2
  94. m_row = ROW()
  95. m_col = COL()
  96. cox = setcolor()
  97. setcolor("+w/r")
  98. IF TYPE("TheWord") = "A"
  99.     FOR I = 1 TO counter
  100.         longest = MAX(longest, LEN(theword[i]))
  101.     NEXT
  102. ELSE
  103.     counter = 1
  104.     longest = MAX(longest,LEN(theword))
  105. ENDIF
  106.  
  107. SET Cursor Off
  108.  
  109. wid  = longest + 6
  110. height = MIN(20,(counter) + 3)
  111. IF temp > 4
  112.     start_row = tlr
  113.     start_col = if(temp = 6,tlc,centre(space(wid)))
  114. ELSE
  115.     start_row = (22 - height) / 2
  116.     start_col = centre(SPACE(wid))
  117. ENDIF
  118. end_row = start_row + height
  119. end_col = start_col + wid
  120. rax     = start_row + 1
  121. COL     = start_col + 3
  122. Cent = wid / 2
  123. temp_scr = savescreen(start_row, start_col, end_row+1, end_col+2)
  124. IF ak
  125.     setcolor("+w/r")
  126. ELSE
  127.     setcolor(cox)
  128. ENDIF
  129. box(start_row, start_col, end_row, end_col,dubsig,-1,3,128)
  130. IF ak
  131.     print(start_row + 1,centre("Special Message"),"Special Message")
  132. ENDIF
  133. IF TYPE("TheWord") = "A"
  134.     spacing = 1
  135.     FOR I = 1 TO counter
  136.         rax = rax + spacing
  137.         spread(theword[i],rax,5,Cent + COL - 3)
  138.     NEXT
  139. ELSE
  140.     rax = rax + 1
  141.     spread(theword,rax,5,Cent + COL - 3)
  142. ENDIF
  143. IF ak
  144.     print(end_row - 1, centre(ak_msg + ak_msg2),ak_msg)
  145.     print(end_row - 1, centre(ak_msg + ak_msg2) + LEN(ak_msg),ak_msg2)
  146. ENDIF
  147. setcolor(cox)
  148. rsvp = .T.
  149. IF ink > 0
  150.     INKEY(ink)
  151. ELSE
  152.     rsvp = IF(INKEY(0)=27,.F.,.T.)
  153. ENDIF
  154. SET Cursor ON
  155. IF .NOT. keep_on_scr
  156.     restscreen(start_row, start_col, end_row+1, end_col+2, temp_scr)
  157.     print(m_row, m_col, SPACE(0))
  158. ENDIF
  159. RELEASE temp_scr,theword
  160.  
  161. RETURN(rsvp)
  162. *!*********************************************************************
  163. *!
  164. *!       Function: PUBSTUFF()
  165. *!
  166. *!           Uses: COLORS.DBF     
  167. *!
  168. *!*********************************************************************
  169. FUNCTION pubstuff
  170. * * * *
  171. * All sorts of public stuff I use in each program
  172. * includes the hue array if using the colors.dbf
  173. * * * *
  174. PUBLIC gohome, doa, bkgrod, BLANK, single, DOUBLE, dubsig, true, false, sigdub, ;
  175.     states, href, bkgrnd, zipper, phoner, freddy, bda, bcda,itsanet
  176. true = .T.
  177. false = .F.
  178. freddy = false
  179. itsanet = false
  180. BLANK = SPACE(9)
  181. single = "┌─┐│┘─└│ "
  182. DOUBLE = "╔═╗║╝═╚║ "
  183. dubsig = "╒═╕│╛═╘│ "
  184. sigdub = "╓─╖║╜─╙║ "
  185. bkgrod = "▄▄▄█▀▀▀█"
  186. bkgrnd = "██████████"
  187. zipper = "#####-####"            &&  use in picture
  188. phoner = "(###)###-####"         &&  ditto
  189. bcda = "  /  /  "                &&  use in date fields
  190. bda =  CTOD(bcda)                &&       ect
  191.  
  192. states="AL═AK═AZ═AR═CA═CZ═CO═CT═DE═DC═EX═FL═GA═GU═HI═ID═IL═IN═IA═KS═KY═"+;
  193.     "LA═ME═MD═MA═MI═MN═MS═MO═MT═NE═NV═NH═NJ═NM═NY═NC═ND═OH═OK═OR═PA═PR═"+;
  194.     "RI═SC═SD═TN═TX═UT═VT═VI═VA═WA═WV═WI═WY"
  195. *  use in valid i.e. valid mstate $ states
  196.  
  197.  
  198. *!*********************************************************************
  199. *!
  200. *!       Function: QU_YN()
  201. *!
  202. *!*********************************************************************
  203. FUNCTION qu_yn
  204. PARAMETERS question, colr, deflt, tlr, tlc
  205.  
  206. PRIVATE counter, cox, longest, long_2, rsvp, height, wid, rax, temp,;
  207.     COL, M_row, M_col, cur_color,old_color, Reverse, temp_scr
  208.  
  209. temp = PCOUNT()
  210.  
  211. IF TYPE("deflt") = "U"
  212.     deflt = false
  213. ENDIF (type("deflt") = "U")
  214. rsvp = deflt
  215.  
  216. M_row = ROW()
  217. M_col = COL()
  218.  
  219. counter = LEN(question)
  220. longest = 3
  221. long_2 = longest / 2
  222. cox = SETCOLOR()
  223.  
  224. IF TYPE("Colr") # "C"
  225.     SETCOLOR("+w/r,n/w")
  226. ELSE
  227.     SETCOLOR(colr)
  228. ENDIF (type("Colr") # "C")
  229.  
  230. IF TYPE("question") = "A"
  231.     question[counter] = question[counter]+"  "
  232.     FOR I = 1 TO counter
  233.         longest = MAX(longest, LEN(question[i]))
  234.     NEXT (I)
  235. ELSE
  236.     question = question + "  "
  237.     counter = 1
  238.     longest = LEN(question)
  239. ENDIF (TYPE("question") = "A")
  240.  
  241. wid  = longest + 6
  242. height = MIN(20,(counter) + 3)
  243. IF temp > 3
  244.     start_row = tlr
  245.     start_col = IF(temp = 6,tlc,Centre(SPACE(wid)))
  246. ELSE
  247.     start_row = (22 - height) / 2
  248.     start_col = Centre(SPACE(wid))
  249. ENDIF (temp > 3)
  250.  
  251. end_row = start_row + height
  252. end_col = start_col + wid
  253. rax     = start_row + 1
  254. COL     = start_col + 3
  255. Cent = wid / 2
  256. temp_scr = Savescreen(start_row, start_col, end_row+1, end_col+2)
  257.  
  258. Box(start_row, start_col, end_row, end_col,dubsig,-1,3,8)
  259.  
  260. IF TYPE("question") = "A"
  261.     spacing = 1
  262.     FOR I = 1 TO counter
  263.         rax = rax + spacing
  264.         print(rax,start_col+3 ,question[i])
  265.     NEXT (I)
  266.     @ rax,start_col+2+len(question[counter]) GET rsvp PICTURE "@! Y"
  267. ELSE
  268.     rax = rax + 1
  269.     print(rax,start_col+3,question)
  270.     @ rax,start_col+2+len(question) GET rsvp PICTURE "@! Y"
  271. ENDIF (TYPE("question") = "A")
  272.  
  273. if ! _read()
  274.     return(false)
  275. endif
  276.  
  277. SETCOLOR(cox)
  278.  
  279. RESTSCREEN(start_row, start_col, end_row+1, end_col+2, temp_scr)
  280. Print(M_row, M_col, SPACE(0))
  281. RELEASE temp_scr,question
  282.  
  283. RETURN(rsvp)
  284.  
  285. function _READ
  286. private _col, _cur
  287. _col = setcolor()
  288. _cur = status(6)
  289. setcolor("+n/w,n/w")
  290. set cursor on
  291. read
  292. set cursor (_cur)
  293. return if(lastkey()=27,.f.,.t.)
  294.  
  295.