home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a085 / 1.ddi / ERR_PRO.PRG < prev    next >
Encoding:
Text File  |  1994-01-12  |  7.7 KB  |  242 lines

  1. *⌐░⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐┤
  2. *⌐ª      Program: ERR_PRO.PRG                                          ⌐ª
  3. *⌐ª     Function: ┤φ╬≤┤ª└φ╫╙│╠╨≥╚²                                     ⌐ª
  4. *⌐╕⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐ñ⌐╝
  5. PARAMETERS errlineno, errprog, errmsg,  errline, errno, ;
  6.            lastwind, readwind, topwind, readno
  7.            * errlineno  ╬¬╖ó╔·┤φ╬≤╡─│╠╨≥╨╨║┼
  8.            * errprog    ╬¬╡▒╟░╒²╘┌╓┤╨╨╡─│╠╨≥├√
  9.            * errmsg     ╬¬┤φ╬≤╨┼╧ó
  10.            * errline    ╬¬╖ó╔·┤φ╬≤╡─│╠╨≥╨╨
  11.            * errno      ╬¬┤φ╬≤┤·║┼
  12.            * lastwind   ╙├╙┌┼╨╢╧╥╗╕÷┤░┐┌╩╟╖±╩╟╡▒╟░┤░┐┌╡─╟░╥╗╕÷┤░┐┌
  13.            * readwind   ╙├╙┌┼╨╢╧╥╗╕÷┤░┐┌╩╟╖±╙δ╡▒╟░╡─ READ ╙╨╣╪
  14.            * topwind    ╙├╙┌┼╨╢╧╥╗╕÷┤░┐┌╩╟╖±╩╟╫ε╟░├µ╡─┤░┐┌
  15.            * readno     ╬¬ READ ╦∙╘┌▓π╩²
  16.  
  17. PRIVATE lowmem, errstr, memscreen, no_files
  18. PRIVATE ALL LIKE ????_errs
  19. PRIVATE ALL LIKE err????
  20.  
  21. errpset = _PDSETUP
  22. errtalk = SET("TALK")
  23. errsafe = SET("SAFETY")
  24.  
  25. SET TALK OFF
  26. SET PDSETUP TO ""
  27.  
  28. * ╖ó╔·┤φ╬≤╧∞│ñ╢╠┴╜╔∙┴σ╔∙▒¿╛»
  29. SET BELL TO 328,3
  30. ?? CHR(7)
  31. SET BELL TO 261,8
  32. ?? CHR(7)
  33. SET BELL TO
  34.  
  35. errstr = "/" + ltrim(str(errno)) + "/"
  36.  
  37. * ┐╔╙├╡─╩ú╙α─┌┤µ╨í╙┌ 10 KB
  38. lowmem = (val(sys(1001))-val(sys(1016)) < 10000)
  39.  
  40. * ░╤┤φ╬≤╖╓│╔╛┼╓╓▓╗═¼╡─└α╨═, ─π┐╔└⌐│Σ╨▐╕─
  41. memo_errs = "/43/1012/1149/1150/1151/1600/"
  42. indx_errs = "/5/19/20/114/1707/"
  43. disk_errs = "/1410/"
  44. file_errs = "/1/15/41/111/1115/1294/1643/1644/1705/"
  45. netw_errs = "/124/1705/"
  46. lock_errs = "/3/108/109/110/1502/1708/"
  47. prtr_errs = "/125/"
  48. drvr_errs = "/1910/1643/1644/1717/"
  49. prgm_errs = "/9/10/11/13/16/30/31/34/36/37/42/44/45/46/47" + ;
  50.             "/94/95/96/101/103/104/107/112/152/164/165/166" + ;
  51.             "/167/168/169/170/174/175/176/177/178/179/181/182" + ;
  52.             "/216/221/230/279/287/355/1001/1206/1211/1212/1213" + ;
  53.             "/1214/1217/1220/1221/1223/1225/1226/1229/1230/1231" + ;
  54.             "/1232/1238/1241/1249/1250/"
  55.  
  56. * ╢¿╥σ╥╗╕÷┤φ╬≤╨┼╧ó╧╘╩╛┤░┐┌
  57. DEFINE WINDOW WIN_E1 FROM 9,5 TO 20,75 SHADOW COLOR SCHEME 7
  58.  
  59. ACTIVATE WINDOW WIN_E1
  60. @0,2 SAY "  ╖ó╔·┤φ╬≤╡─│╠╨≥╨╨║┼: "+LTRIM(STR(errlineno))
  61. @1,2 SAY "  ╖ó╔·┤φ╬≤╡─│╠╨≥├√│╞: "+errprog
  62. @2,2 SAY "            ┤φ╬≤╨┼╧ó: "+errmsg
  63. @3,2 SAY "      │÷┤φ│╠╨≥╨╨─┌╚▌: "+errline
  64. @4,2 SAY "            ┤φ╬≤┤·┬δ: "+LTRIM(STR(errno))
  65. @5,2 SAY "  ╡▒╟░┤░┐┌╡─╟░╥╗┤░┐┌: "+lastwind
  66. @6,2 SAY "┤░┐┌╙δ╡▒╟░READ╙╨╣╪╖±: "+IIF(readwind,'╙╨╣╪','╬▐╣╪')
  67. @7,2 SAY "  ┤░┐┌╩╟╖±╫ε╟░├µ┤░┐┌: "+topwind
  68. @8,2 SAY "       READ ╦∙╘┌▓π╩²: "+LTRIM(STR(readno))
  69.  
  70. WAIT " ░┤╚╬╥╗╝ⁿ╝╠╨°! " WINDOW
  71. DEACTIVATE WINDOW WIN_E1
  72.  
  73. IF errstr $ prtr_errs
  74.    err_ask = ASK(" ┤≥╙í╗·├╗╙╨╫╝▒╕║├; RETURN or CANCEL?",;
  75.                   "RETRY ","@M  RETRY, CANCEL")
  76.    SET TALK &errtalk
  77.    SET PDSETUP TO errpset
  78.    SET SAFETY &errsafe
  79.    IF "R" $ err_ask
  80.       RETRY
  81.    ELSE
  82.       RETURN
  83.    ENDIF
  84. ENDIF
  85.  
  86. IF errstr $ lock_errs
  87.    err_ask = ASK("╝╟┬╝/╬─╝■╘┌╩╣╙├; RETRY or CANCEL?",;
  88.                   "RETRY ","@M  RETRY, CANCEL")
  89.    SET TALK &errtalk
  90.    SET PDSETUP TO errpset
  91.    SET SAFETY &errsafe
  92.    IF "R" $ err_ask
  93.       RETRY
  94.    ELSE
  95.       got_cancel = .T.
  96.       RETURN
  97.    ENDIF
  98. ENDIF
  99.  
  100. WAIT CLEAR
  101. SET COLOR OF SCHEME 5 TO SCHEME 7
  102. no_files = .F.
  103.  
  104. DO CASE
  105.    CASE UPPER(errprog) = "FILEOPEN"
  106.         * ╬─╝■┤≥┐¬┤φ╬≤, ┐╔╘┌┤╦╫≈┤≥┐¬╧╡═│╦∙╨Φ╡─╚½▓┐╬─╝■╥╘╣⌐╤í╘±╡──ú┐Θ,
  107.         * ╗≥╜¿┴ó├╗╒╥╡╜╡─╬─╝■╡╚
  108.  
  109.    CASE errstr $ prgm_errs
  110.         * ░╤╨Φ╥¬╓╕╢¿╡─┐╔─▄╖ó╔·╡─▒α│╠┤φ╬≤║═┤ª└φ╖┼╘┌╒Γ└∩, ▓ó═╦│÷┤φ╬≤┤ª
  111.         * └φ│╠╨≥, ╚⌠▓╗═╦│÷, ┤φ╬≤╨┼╧ó╜½┤µ╚δ ERRLOG.DBF ║═ ERRLOG.FPT
  112.         * ╓╨, ╣⌐─π╖╓╬÷╤╨╛┐
  113.  
  114.    CASE errstr $ indx_errs
  115.         WAIT WINDOW NOWAIT "╔╛│²┤φ╬≤╡─╦≈╥²╬─╝■, ╓╪╜¿╦≈╥²..."
  116.         ON ERROR
  117.         ON ERROR DO ERR_PRO WITH  LINENO(1), PROGRAM(), ;
  118.                             MESSAGE(), MESSAGE(1), ERROR(), ;
  119.                             WLAST(), WREAD(), WONTOP(), RDLEVEL()
  120.         WAIT CLEAR
  121.  
  122.    CASE errstr $ drvr_errs
  123.         * ╢╘┤≥╙í╔Φ▒╕│÷┤φ╡─┤ª└φ
  124.  
  125.    CASE errno = 1309
  126.         WAIT WINDOW  " │╠╨≥╬─╝■╙╨╬╩╠Γ, ╟δ╓╪╨┬░▓╫░."
  127. ENDCASE
  128.  
  129. * ╝∞▓Θ▓╗─▄┤µ╚δ ERRLOG.DBF ╓╨╡─▓╗┐╔╗╓╕┤╡─┤φ╬≤
  130. IF no_files OR lowmem OR INLIST(errno, 1309, 56) && make your own list!
  131.    WAIT WINDOW UPPER(PROGRAM(0))+;
  132.                " ▓╗─▄┤╙╒Γ╕÷┤φ╬≤╗╓╕┤, ╟δ░┤╚╬╥╗╝ⁿ═╦│÷│╠╨≥"
  133.    CLOSE ALL
  134.    ERASE (m.oldvue)
  135.    QUIT
  136. ENDIF
  137.  
  138. WAIT WINDOW   "╖ó╔·│╠╨≥└²═Γ, ╜½░╤╙╨╣╪┤φ╬≤╨┼╧ó╨┤╡╜ ERRLOG.DBF ╓╨ "
  139. err_sel = SELECT()
  140. err_rec = RECNO()
  141.  
  142. * ░╤╧Ω╧╕╡─│÷┤φ╨┼╧ó╨┤╚δ ERRLOG.DBF ┐Γ└∩
  143. IF USED("errlog")
  144.    SELECT errlog
  145. ELSE
  146.    IF FILE("errlog.dbf") AND FILE("errlog.fpt")
  147.       SELECT 0
  148.       USE errlog
  149.    ELSE
  150.       * ╚τ errlog.dbf ║═ errlog.fpt ▓╗┤µ╘┌, ╘≥╓╪╨┬╜¿┴ó
  151.       CREATE TABLE errlog ;
  152.              (ERRDATE    D(8), ;
  153.               ERRTIME    C(8), ;
  154.               SNAPSHOT   M(10),;
  155.               UNDERNEATH M(10),;
  156.               LISTING    M(10),;
  157.               USERNOTES  M(10))
  158.    ENDIF
  159. ENDIF
  160. APPEND BLANK
  161. SAVE WINDOWS ALL TO MEMO snapshot
  162. ACTIVATE SCREEN
  163. SAVE SCREEN TO memscreen
  164. SAVE ALL LIKE memscreen TO MEMO underneath
  165.  
  166. REPLACE errdate WITH DATE(), errtime WITH TIME()
  167. * ┤µ╚δ╖ó╔·┤φ╬≤╡─╚╒╞┌║═╩▒╝Σ
  168.  
  169. errdata =        '┤φ╬≤┤·┬δ ='+ALLTRIM(STR(errno))
  170. errdata = errdata+CHR(13)+'┤φ╬≤╨┼╧ó = '+errmsg
  171. errdata = errdata+CHR(13)+'╫ε║≤╡─┤φ╬≤┤·▓╬╩² = '+SYS(2018)
  172. errdata = errdata+CHR(13)+'│╠╨≥├√│╞ = '+ errprog
  173. errdata = errdata+CHR(13)+'┤φ╬≤│╠╨≥╨╨║┼ = '+;
  174.                           ALLTRIM(STR(errlineno))+":  "+errline
  175. REPLACE listing WITH errdata
  176.  
  177. errdata =         CHR(13)+'bof='+IIF(BOF(),"YES","NO")
  178. errdata = errdata+CHR(13)+ 'eof='+IIF(EOF(),"YES","NO")
  179. errdata = errdata+CHR(13)+'last window='+lastwind
  180. errdata = errdata+CHR(13)+'top window '+IIF(EMPTY(topwind),;
  181.                            'SCREEN ',UPPER(topwind))+;
  182.                            IIF(readwind, '*is*','*is NOT*')+;
  183.                            ' involved in current READ'
  184. REPLACE listing WITH errdata ADDITIVE
  185.  
  186. errdata =         CHR(13)+'read level='+ALLTRIM(STR(readno))
  187. errdata = errdata+CHR(13)+ 'rec. no.='+ALLTRIM(STR(err_rec))
  188. errdata = errdata+CHR(13)+ '┤┼┼╠┐╒╝Σ ='+ALLTRIM(STR(DISKSPACE(),25))
  189. errdata = errdata+CHR(13)+ '▓┘╫≈╧╡═│ ='+OS()
  190. errdata = errdata+CHR(13)+ '░µ▒╛ ='+VERSION(1)
  191. REPLACE listing WITH errdata ADDITIVE
  192.  
  193. errdata =         CHR(13)+ ALLTRIM(STR(VAL(SYS(1016))/1024))+;
  194.                            "K memory in use by user objects"
  195. errdata = errdata+CHR(13)+ ALLTRIM(STR(VAL(SYS(12))/1024))+;
  196.                            "K memory remaining"
  197. errdata = errdata+CHR(13)+ ALLTRIM(STR(VAL(SYS(1001))/1024))+;
  198.                            "K total memory available to Fox"
  199. errdata = errdata+CHR(13)+ IIF(EMPTY(errpset),"NO",errpset)+;
  200.                            " Printer Driver Installed"
  201. REPLACE listing WITH errdata ADDITIVE
  202.  
  203. errdata =         CHR(13)+ 'processor='+ SYS(17)
  204. errdata = errdata+CHR(13)+ 'video card/monitor='+SYS(2006)
  205. errdata = errdata+CHR(13)+ 'FILES='+SYS(2010)
  206. errdata = errdata+CHR(13)+CHR(13)+REPLICATE('=',50)
  207. errdata = errdata+CHR(13)+'            Status listing'
  208. errdata = errdata+CHR(13)+REPLICATE('=',50)+CHR(13)
  209. REPLACE listing WITH errdata ADDITIVE
  210.  
  211. RELEASE errdata
  212.  
  213. IF TYPE("gramdisk") # "C"
  214.    gramdisk = ""
  215. ENDIF
  216. errfile = gramdisk+SYS(3)+".tmp"
  217. DO WHILE FILE(errfile)
  218.    errfile = gramdisk+SYS(3)+".tmp"
  219. ENDDO
  220.  
  221. LIST STATUS TO (errfile) NOCONSOLE
  222. APPEND MEMO listing FROM (errfile)
  223.  
  224. ERASE (errfile)
  225.  
  226. REPLACE listing WITH CHR(13)+REPLICATE('=',50)+CHR(13)+;
  227.                 '            Memory listing'+CHR(13)+;
  228.                 REPLICATE('=',50)+CHR(13) ;
  229.                 ADDITIVE
  230.  
  231. LIST MEMORY TO (errfile) NOCONSOLE
  232. APPEND MEMO listing FROM (errfile)
  233. *APPEND MEMO usernotes FROM survey.txt
  234. SELECT (err_sel)
  235. ERASE (errfile)
  236. WAIT CLEAR
  237. SET COLOR OF SCHEME 5 TO
  238. SET TALK &errtalk
  239. SET PDSETUP TO errpset
  240. SET SAFETY &errsafe
  241. RETURN TO MASTER
  242.