home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / COMPRESS / CMPRSS.ZIP / COMPRESS.PRG < prev    next >
Encoding:
Text File  |  1990-07-11  |  7.1 KB  |  294 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. overlay("FB",0,0,0)
  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. chdir("\")
  56. set cursor on
  57. return
  58.  
  59. ************************************************
  60. *
  61. *   The following are from my personal lib,
  62. *   feel free to use at will
  63. *
  64. *************************************************
  65.  
  66.  
  67. *!*********************************************************************
  68. *!
  69. *!       Function: ALERT()
  70. *!
  71. *!*********************************************************************
  72. FUNCTION Alert
  73. PARAMETERS theword, ak, ink, keep, tlr, tlc
  74. PRIVATE counter, ak_msg, cox, longest, rsvp, height, wid, rax, ;
  75.     COL, m_row, m_col, cur_color,old_color, reverse, temp_scr, keep_on_scr
  76. IF TYPE("ak") = "U"
  77.     ak = .T.
  78. ENDIF
  79. IF TYPE("ink") = "U"
  80.     ink = 0
  81. ENDIF
  82. IF TYPE("keep") = "U"
  83.     keep_on_scr = .f.
  84. ELSE
  85.     keep_on_scr = keep
  86. ENDIF
  87. temp = pcount()
  88. ak_msg = "Press any key to continue"
  89. ak_msg2 = "..."
  90. counter = LEN(theword)
  91. longest = LEN(ak_msg+ak_msg2)
  92. long_2 = longest / 2
  93. m_row = ROW()
  94. m_col = COL()
  95. cox = setcolor()
  96. setcolor("+w/r")
  97. IF TYPE("TheWord") = "A"
  98.     FOR I = 1 TO counter
  99.         longest = MAX(longest, LEN(theword[i]))
  100.     NEXT
  101. ELSE
  102.     counter = 1
  103.     longest = MAX(longest,LEN(theword))
  104. ENDIF
  105.  
  106. SET Cursor Off
  107.  
  108. wid  = longest + 6
  109. height = MIN(20,(counter) + 3)
  110. IF temp > 4
  111.     start_row = tlr
  112.     start_col = if(temp = 6,tlc,centre(space(wid)))
  113. ELSE
  114.     start_row = (22 - height) / 2
  115.     start_col = centre(SPACE(wid))
  116. ENDIF
  117. end_row = start_row + height
  118. end_col = start_col + wid
  119. rax     = start_row + 1
  120. COL     = start_col + 3
  121. Cent = wid / 2
  122. temp_scr = savescreen(start_row, start_col, end_row+1, end_col+2)
  123. IF ak
  124.     setcolor("+w/r")
  125. ELSE
  126.     setcolor(cox)
  127. ENDIF
  128. box(start_row, start_col, end_row, end_col,dubsig,-1,3,128)
  129. IF ak
  130.     print(start_row + 1,centre("Special Message"),"Special Message")
  131. ENDIF
  132. IF TYPE("TheWord") = "A"
  133.     spacing = 1
  134.     FOR I = 1 TO counter
  135.         rax = rax + spacing
  136.         spread(theword[i],rax,5,Cent + COL - 3)
  137.     NEXT
  138. ELSE
  139.     rax = rax + 1
  140.     spread(theword,rax,5,Cent + COL - 3)
  141. ENDIF
  142. IF ak
  143.     print(end_row - 1, centre(ak_msg + ak_msg2),ak_msg)
  144.     print(end_row - 1, centre(ak_msg + ak_msg2) + LEN(ak_msg),ak_msg2)
  145. ENDIF
  146. setcolor(cox)
  147. rsvp = .T.
  148. IF ink > 0
  149.     INKEY(ink)
  150. ELSE
  151.     rsvp = IF(INKEY(0)=27,.F.,.T.)
  152. ENDIF
  153. SET Cursor ON
  154. IF .NOT. keep_on_scr
  155.     restscreen(start_row, start_col, end_row+1, end_col+2, temp_scr)
  156.     print(m_row, m_col, SPACE(0))
  157. ENDIF
  158. RELEASE temp_scr,theword
  159.  
  160. RETURN(rsvp)
  161. *!*********************************************************************
  162. *!
  163. *!       Function: PUBSTUFF()
  164. *!
  165. *!           Uses: COLORS.DBF     
  166. *!
  167. *!*********************************************************************
  168. FUNCTION pubstuff
  169. * * * *
  170. * All sorts of public stuff I use in each program
  171. * includes the hue array if using the colors.dbf
  172. * * * *
  173. PUBLIC gohome, doa, bkgrod, BLANK, single, DOUBLE, dubsig, true, false, sigdub, ;
  174.     states, href, bkgrnd, zipper, phoner, freddy, bda, bcda,itsanet
  175. true = .T.
  176. false = .F.
  177. freddy = false
  178. itsanet = false
  179. BLANK = SPACE(9)
  180. single = "┌─┐│┘─└│ "
  181. DOUBLE = "╔═╗║╝═╚║ "
  182. dubsig = "╒═╕│╛═╘│ "
  183. sigdub = "╓─╖║╜─╙║ "
  184. bkgrod = "▄▄▄█▀▀▀█"
  185. bkgrnd = "██████████"
  186. zipper = "#####-####"            &&  use in picture
  187. phoner = "(###)###-####"         &&  ditto
  188. bcda = "  /  /  "                &&  use in date fields
  189. bda =  CTOD(bcda)                &&       ect
  190.  
  191. states="AL═AK═AZ═AR═CA═CZ═CO═CT═DE═DC═EX═FL═GA═GU═HI═ID═IL═IN═IA═KS═KY═"+;
  192.     "LA═ME═MD═MA═MI═MN═MS═MO═MT═NE═NV═NH═NJ═NM═NY═NC═ND═OH═OK═OR═PA═PR═"+;
  193.     "RI═SC═SD═TN═TX═UT═VT═VI═VA═WA═WV═WI═WY"
  194. *  use in valid i.e. valid mstate $ states
  195.  
  196.  
  197. *!*********************************************************************
  198. *!
  199. *!       Function: QU_YN()
  200. *!
  201. *!*********************************************************************
  202. FUNCTION qu_yn
  203. PARAMETERS question, colr, deflt, tlr, tlc
  204.  
  205. PRIVATE counter, cox, longest, long_2, rsvp, height, wid, rax, temp,;
  206.     COL, M_row, M_col, cur_color,old_color, Reverse, temp_scr
  207.  
  208. temp = PCOUNT()
  209.  
  210. IF TYPE("deflt") = "U"
  211.     deflt = false
  212. ENDIF (type("deflt") = "U")
  213. rsvp = deflt
  214.  
  215. M_row = ROW()
  216. M_col = COL()
  217.  
  218. counter = LEN(question)
  219. longest = 3
  220. long_2 = longest / 2
  221. cox = SETCOLOR()
  222.  
  223. IF TYPE("Colr") # "C"
  224.     SETCOLOR("+w/r,n/w")
  225. ELSE
  226.     SETCOLOR(colr)
  227. ENDIF (type("Colr") # "C")
  228.  
  229. IF TYPE("question") = "A"
  230.     question[counter] = question[counter]+"  "
  231.     FOR I = 1 TO counter
  232.         longest = MAX(longest, LEN(question[i]))
  233.     NEXT (I)
  234. ELSE
  235.     question = question + "  "
  236.     counter = 1
  237.     longest = LEN(question)
  238. ENDIF (TYPE("question") = "A")
  239.  
  240. wid  = longest + 6
  241. height = MIN(20,(counter) + 3)
  242. IF temp > 3
  243.     start_row = tlr
  244.     start_col = IF(temp = 6,tlc,Centre(SPACE(wid)))
  245. ELSE
  246.     start_row = (22 - height) / 2
  247.     start_col = Centre(SPACE(wid))
  248. ENDIF (temp > 3)
  249.  
  250. end_row = start_row + height
  251. end_col = start_col + wid
  252. rax     = start_row + 1
  253. COL     = start_col + 3
  254. Cent = wid / 2
  255. temp_scr = Savescreen(start_row, start_col, end_row+1, end_col+2)
  256.  
  257. Box(start_row, start_col, end_row, end_col,dubsig,-1,3,8)
  258.  
  259. IF TYPE("question") = "A"
  260.     spacing = 1
  261.     FOR I = 1 TO counter
  262.         rax = rax + spacing
  263.         print(rax,start_col+3 ,question[i])
  264.     NEXT (I)
  265.     @ rax,start_col+2+len(question[counter]) GET rsvp PICTURE "@! Y"
  266. ELSE
  267.     rax = rax + 1
  268.     print(rax,start_col+3,question)
  269.     @ rax,start_col+2+len(question) GET rsvp PICTURE "@! Y"
  270. ENDIF (TYPE("question") = "A")
  271.  
  272. if ! _read()
  273.     return(false)
  274. endif
  275.  
  276. SETCOLOR(cox)
  277.  
  278. RESTSCREEN(start_row, start_col, end_row+1, end_col+2, temp_scr)
  279. Print(M_row, M_col, SPACE(0))
  280. RELEASE temp_scr,question
  281.  
  282. RETURN(rsvp)
  283.  
  284. function _READ
  285. private _col, _cur
  286. _col = setcolor()
  287. _cur = status(6)
  288. setcolor("+n/w,n/w")
  289. set cursor on
  290. read
  291. set cursor (_cur)
  292. return if(lastkey()=27,.f.,.t.)
  293.  
  294.