home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a056 / 5.ddi / RS / YQMIS002.PRG < prev    next >
Encoding:
Text File  |  1993-11-06  |  22.0 KB  |  1,315 lines

  1. *******************************************************
  2. * ╬─╝■├√│╞: YQMIS002
  3. * │╠╨≥╔Φ╝╞: └ε▒■╥╗                
  4. * ▒α│╠╚╒╞┌: 93.11.06   21:30:57
  5. *******************************************************
  6. set safe off
  7. set date ansi
  8. close data
  9. set color to w/1,,
  10. clear
  11. do smggp with '╟δ  ╔╘  ║≥ !',10,34
  12. set color to w/1,,
  13. sele A
  14. *set excl on
  15. use RS alia A
  16. sele B
  17. *set excl on
  18. use RSJL alia B
  19. index on ╨╒├√ to RSJL
  20. sele A
  21. set rela to ╨╒├√ into B addi
  22. set proc to YQMIS002
  23. priv ozdm,ogzq,oh,ol,ok,oj,otjbl
  24. otjbl=space(78)
  25. ok=-1
  26. oj=.f.
  27. do while .t.
  28. set color to 7/1,1/7,
  29. clear
  30. call hj with '00007924'
  31. @ 2,1 say repl('⌐Ñ',39)
  32. @ 22,1 say repl('⌐Ñ',39)
  33. set dele off
  34. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:         '
  35. @ 23,16 say '^End:═╦│÷ ^Home:╧╘╩╛╣ª─▄▓╦╡Ñ ^PgUp:╜°╚δ╡τ╫╙▒¿▒φ '
  36. @ 5,2 say '                           ═¿╙├╚╦╩┬╡╡░╕╨▐╕─│╠╨≥'
  37. @ 6,2 say '                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  38. @ 7,2 say '     ⌐│⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╖'
  39. @ 8,2 say '     ⌐º╨╒├√:       ⌐º╨╘▒≡:   ⌐º╡Ñ╬╗:       ⌐º│÷╔·╚╒╞┌:         ⌐º'
  40. @ 9,2 say '     ⌐╟⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐Ñ⌐Ñ⌐╫⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╧'
  41. @ 10,2 say '     ⌐º╣ñ╫≈╩▒╝Σ:         ⌐º╬─╗»│╠╢╚:     ⌐º╝╝╩⌡╓░│╞:           ⌐º'
  42. @ 11,2 say '     ⌐╟⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐∩⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╧'
  43. @ 12,2 say '     ⌐º╗∙▒╛╣ñ╫╩:         ⌐º╓░╬±╜≥╠∙:                           ⌐º'
  44. @ 13,2 say '     ⌐╟⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╫⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐╧'
  45. @ 14,2 say '     ⌐º▒╧╥╡╤º╨ú:                     ⌐º─Ω┴Σ╢╬:                 ⌐º'
  46. @ 15,2 say '     ⌐╗⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐▀⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐Ñ⌐┐'
  47. set color to w+/1,,
  48. sele 1
  49. @ 1,29 say recc() pict '@B 99999999'
  50. sele 9
  51. use odm.lby inde odm alia i
  52. sele 10
  53. use YQMIS002.olr alia j
  54. wjm=left(sys(16),len(sys(16))-4)
  55. sele 1
  56. if recc()=0
  57. appe blan
  58. endif
  59. do xs
  60. sele 10
  61. goto top
  62. set color to w+/1,0/w,
  63. do while .t.
  64.    ozdm=trim(╫╓╢╬├√)
  65.    ogzq=╟°
  66.    ojg=╕─
  67.    oh=╨╨+2
  68.    ol=┴╨+2
  69.    ocd=┤╩╡Σ
  70.    sele 1
  71.    if ogzq='A'.and..not.ojg
  72.       @ oh,ol get &ozdm
  73.       if ocd
  74.          clea get
  75.          ozdmc=ozdm
  76.          do odm
  77.       else
  78.          read
  79.       endif
  80.       ok=read()
  81.       if ok>255
  82.          goto recn()
  83.          do js
  84.       endif
  85.       ok=mod(ok,256)
  86.       @ oh,ol say &ozdm
  87.    endif
  88.    sele 10
  89.    do case
  90.    case ok=4.or.ok=0.or.ok=2
  91.         if .not.bof()
  92.            oj=.f.
  93.            skip -1
  94.         endif
  95.         if bof()
  96.            goto top
  97.            sele 1
  98.            if .not.eof()
  99.               skip -1
  100.            endif
  101.            if bof()
  102.               goto top
  103.            endif
  104.            do xs
  105.         endif
  106.    case ok=1.or.ok=5
  107.         if .not.eof()
  108.            skip
  109.         endif
  110.         if eof()
  111.            sele 1
  112.            if .not.eof()
  113.            skip
  114.            endif
  115.            if eof()
  116.               do zj
  117.            endif
  118.            do xs
  119.            goto top
  120.         endif
  121.    case ok=6
  122.         oj=.f.
  123.         sele 1
  124.         if .not.bof()
  125.            skip -1
  126.         endif
  127.         if bof()
  128.            goto top
  129.         endif
  130.         do xs
  131.    case ok=7
  132.         sele 1
  133.         if .not.eof()
  134.            skip
  135.         endif
  136.         if eof()
  137.            do zj
  138.         endif
  139.         do xs
  140.    case ok=33
  141.         do cd
  142.    case ok=14
  143.         do smggp with '╒²╘┌┤µ┼╠,╟δ╔╘║≥!',10,31
  144.         sele 1
  145.         pack
  146.         close proc
  147.         close data
  148.         return
  149.    case ok=34
  150.         sele 1
  151.      do brow
  152.         exit
  153.    othe
  154.         if .not.eof()
  155.            skip
  156.         endif
  157.         if eof()
  158.            goto top
  159.            sele 1
  160.            if .not.eof()
  161.               skip
  162.            endif
  163.            if eof()
  164.               goto bott
  165.            endif
  166.            do xs
  167.         endif
  168.    endcase
  169.    sele 10
  170. enddo
  171. enddo
  172. return
  173.  
  174. ****************
  175. * ╧╘╩╛╦∙╙╨╫╓╢╬ *
  176. ****************
  177. proc xs
  178. priv ozdm,ogzq,oh,ol
  179. sele 1
  180. set color to w+/1,,
  181. @ 1,9 say recn() pict '@B 99999999'
  182. if dele()
  183.    set color to r+/1,,
  184. else
  185.    set color to w+/1,,
  186. endif
  187. sele 10
  188. goto top
  189. do while .not.eof()
  190.    ozdm=trim(╫╓╢╬├√)
  191.    ogzq=╟°
  192.    oh=╨╨+2
  193.    ol=┴╨+2
  194.    sele 1
  195.    @ oh,ol say &ogzq.->&ozdm
  196.    sele 10
  197.    skip
  198. enddo
  199. goto top
  200. ok=5
  201. return
  202.  
  203. ****************
  204. * ╫╖╝╙╝╟┬╝     *
  205. ****************
  206. proc zj
  207. priv ok
  208. sele 1
  209. if oj
  210.    appe blan
  211.    @ 1,29 say recc() pict '@B 99999999'
  212. else
  213.    set color to w+/1,,
  214.    @ 21,30 say '╩╟╖±╫╖╝╙╨┬╡─╝╟┬╝?(Y/N)'
  215.    ok=chr(abs(inkey(0)))
  216.    @ 21,30 say '                      '
  217.    if ok$'Yy'
  218.       oj=.t.
  219.       appe blan
  220.       @ 1,29 say recc() pict '@B 99999999'
  221.    else
  222.       goto bott
  223.    endif
  224. endif
  225. return
  226.  
  227. ****************
  228. *   ┬╝╚δ▓╦╡Ñ   *
  229. ****************
  230. proc cd
  231. priv o,tx(9)
  232. dime tx(9)
  233. sele 1
  234. @ oh,ol get &ozdm
  235. clear get
  236. tx(1)='╓╕╒δ'
  237. tx(2)='▓σ╚δ'
  238. tx(3)='╔╛│²'
  239. tx(4)='╜√╕─'
  240. tx(5)='╝ñ╗ε'
  241. tx(6)='┤·┬δ'
  242. tx(7)='╣½╩╜'
  243. tx(8)='╠⌡╝■'
  244. tx(9)='╨▐╕─'
  245. o=0
  246. do menu with 9,6
  247. set color to w+/1,,
  248. do case
  249. case o=1
  250.      sele 1
  251.      tx(1)='╬─╝■┐¬═╖'
  252.      tx(2)='╬─╝■╬▓▓┐'
  253.      tx(3)='╓╕╢¿╝╟┬╝'
  254.      o=0
  255.      do menu with 3,10
  256.      do case
  257.      case o=1
  258.           goto top
  259.      case o=2
  260.           goto bott
  261.      case o=3
  262.           o=recn()
  263.           @ 1,54 say '╝╟┬╝║┼:' get o rang 1,recc() pict '@B'
  264.           read
  265.           @ 1,54 say space(25)
  266.           goto o
  267.      endcase
  268.      do xs
  269.      sele 1
  270. case o=2
  271.      inse befor blan
  272.      do xs
  273.      sele 1
  274.      set color to w+/1,,
  275.      @ 1,29 say recc() pict '@B 99999999'
  276. case o=3
  277.      sele 1
  278.      if dele()
  279.         reca
  280.       else
  281.         dele
  282.       endif
  283.       do xs
  284. case o=4
  285.      sele 10
  286.      repl ╕─ with .t.
  287.      oa=1
  288.      sele 1
  289.      set color to w+/1,,
  290.      @ oh,ol say &ozdm
  291.      ok=5
  292. case o=5
  293.      sele 10
  294.      ol0=recn()
  295.      repl ╕─ with .f. all
  296.      goto ol0
  297. case o=6
  298.      sele 10
  299.      if ╫╓╢╬└α╨═='C'
  300.         repl ┤╩╡Σ with iif(┤╩╡Σ,.f.,.t.)
  301.         oa=1
  302.         sele 1
  303.         set color to w+/1,,
  304.         @ oh,ol say &ozdm
  305.      endif
  306. case o=7
  307.      do gs
  308. case o=8
  309.      do tj
  310. case o=9
  311.      do xg
  312. endcase
  313. set color to w+/1,1/7,
  314. return
  315.  
  316. ****************
  317. *   ┤·┬δ╠µ╗╗   *
  318. ****************
  319. proc odm
  320. set exact on
  321. odm='        '
  322. set color to w+/r,,
  323. @ 21,1 say '╩Σ╚δ┤·┬δ:'get odm pict '!!!!!!!!'
  324. read
  325. if odm='        '
  326.    @ 21,1 say space(78)
  327.    set color to w+/1,,
  328.    retu
  329. endif
  330. sele 9
  331. seek ozdmc+odm
  332. if found()
  333.    sele 1
  334.    repl &ozdm with i->nr
  335. else
  336.    appe blan
  337.    repl zd with ozdm,dm with odm
  338.    @ 21,20 say '─┌╚▌:' get nr
  339.    read
  340.    sele 1
  341.    repl &ozdm with i->nr
  342. endif
  343. @ 21,1 say space(78)
  344. set color to w+/1,,
  345. sele 1
  346. set exac off
  347. return
  348.  
  349. ****************
  350. *   ╣½╩╜╝╞╦π   *
  351. ****************
  352. proc js
  353. priv o,ozdm,ojs,ol,oh
  354. set color to w+/1,0/w,
  355. sele 10
  356. o=recn()
  357. goto top
  358. do while .not.eof()
  359. ozdm=trim(╫╓╢╬├√)
  360. ojs=trim(╦π)
  361. oh=╨╨+2
  362. ol=┴╨+2
  363. sele 1
  364. if len(ojs)>0
  365. repl &ozdm with &ojs
  366. @ oh,ol say &ozdm
  367. endif
  368. sele 10
  369. skip
  370. enddo
  371. sele 10
  372. goto o
  373. sele 1
  374. return
  375.  
  376. ****************
  377. *   ╩Σ╚δ╣½╩╜   *
  378. ****************
  379. proc gs
  380. priv ox,o,ocr,osq,ozf,ohz,ozdm,ol,obj,ojsgs
  381. set color to w+/1,,
  382. @ 23,1 say space(78)
  383. @ 23,18 say '^End:═╦│÷ íⁿí²:╥╞╢»╫╓╢╬╣Γ▒Ω ╗╪│╡╝ⁿ:╤í╘±╫╓╢╬'
  384. set color to w+/r,,
  385. obj=chr(160)
  386. ohz=0
  387. ozf=''
  388. ocr=1
  389. ox=1
  390. sele 10
  391. ol=recn()
  392. ozdm=trim(╫╓╢╬├√)
  393. @ 1,40 say '╜ß╣√╫╓╢╬:'+ozdm
  394. @ 1,60 say '╨▐╕─'
  395. ojsgs=╦π
  396. set color to 0/w,,
  397. @ 21,1 say space(78)
  398. @ 21,1 say ojsgs
  399. sele 2
  400. do while .t.
  401. set color to 0/w,,
  402. @ 21,ox say ''
  403. o=inkey(0)
  404. do case
  405. case o=19.and.ox>1
  406. ox=ox-1
  407. if subs(ojsgs,ox,1)>obj
  408. ox=ox-1
  409. endif
  410. loop
  411. case o=4.and.ox<80
  412. ox=iif(subs(ojsgs,ox,1)>obj,ox+2,ox+1)
  413. loop
  414. case o<127.and.o>31
  415. ozf=iif(subs(ojsgs,ox,1)>obj.and.ocr=1,chr(o)+' ',chr(o))
  416. if ocr=0
  417. if len(trim(ojsgs))+len(ozf)<81
  418. ojsgs=left(stuf(ojsgs,ox,0,ozf),80)
  419. ox=iif(ox<78,ox+1,ox)
  420. @ 21,1 say ojsgs
  421. endif
  422. else
  423. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  424. @ 21,ox say ozf
  425. ox=iif(ox<80,ox+1,ox)
  426. endif
  427. ohz=0
  428. case o>160.and.ox<80
  429. if ohz=0
  430. ozf=chr(o)
  431. ohz=1
  432. else
  433. ozf=ozf+chr(o)
  434. ozf=iif(ocr=1.and.subs(ojsgs,ox,1)<obj.and.subs(ojsgs,ox+1,1)>obj,ozf+' ',ozf)
  435. if ocr=0
  436. if len(trim(ojsgs))+len(ozf)<79
  437. ojsgs=left(stuf(ojsgs,ox,0,ozf),78)
  438. @ 21,1 say ojsgs
  439. ox=iif(ox<79,ox+2,ox)
  440. endif
  441. else
  442. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  443. @ 21,ox say ozf
  444. ox=iif(ox<79,ox+2,ox)
  445. endif
  446. ohz=0
  447. endif
  448. case o=22
  449. ocr=iif(ocr=0,1,0)
  450. @ 1,60 say iif(ocr=0,'▓σ╚δ','╨▐╕─')
  451. case o=7
  452. ojsgs=iif(subs(ojsgs,ox,1)<obj,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  453. @ 21,1 say ojsgs
  454. case o=127.and.ox>1
  455. ox=ox-1
  456. if subs(ojsgs,ox,1)>obj
  457. ox=ox-1
  458. endif
  459. ojsgs=iif(subs(ojsgs,ox,1)<obj,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  460. @ 21,1 say ojsgs
  461. case o=13
  462. keyb chr(24)
  463. sele 10
  464. ozdm0=iif(╟°='A',trim(╫╓╢╬├√),╟°+'->'+trim(╫╓╢╬├√))
  465. if len(trim(ojsgs))+len(ozdm0)<79
  466. ojsgs=left(stuf(ojsgs,ox,0,ozdm0),78)
  467. @ 21,1 say ojsgs
  468. ox=ox+len(ozdm0)
  469. ox=iif(ox>78,78,ox)
  470. endif
  471. case o=23
  472. sele 10
  473. goto ol
  474. repl ╦π with ojsgs
  475. exit
  476. case o=24
  477. sele 10
  478. set color to w+/1,,
  479. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  480. if .not.eof()
  481. skip
  482. endif
  483. if eof()
  484. goto top
  485. endif
  486. set color to w+/r,,
  487. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  488. case o=5
  489. sele 10
  490. set color to w+/1,,
  491. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  492. if .not.bof()
  493. skip -1
  494. endif
  495. if bof()
  496. goto bott
  497. endif
  498. set color to w+/r,,
  499. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  500. endcase
  501. enddo
  502. set color to w+/1,,
  503. @ 1,40 say space(39)
  504. @ 21,1 say space(78)
  505. set color to 0/3,,
  506. @ 23,1 say space(78)
  507. @ 23,16 say '^End:═╦│÷ ^Home:╧╘╩╛╣ª─▄▓╦╡Ñ ^PgUp:╜°╚δ╡τ╫╙▒¿▒φ '
  508. set color to 7/1,1/7,
  509. return
  510. **************
  511. *  ╩Σ╚δ╠⌡╝■  *
  512. **************
  513. proc tj
  514. priv ox,o,ocr,osq,ozf,ohz,ozdm,ol,obj,ojsgs
  515. ojsgs=otjbl
  516. set color to w+/1,,
  517. @ 23,1 say space(78)
  518. @ 23,18 say '^End:═╦│÷ íⁿí²:╥╞╢»╫╓╢╬╣Γ▒Ω ╗╪│╡╝ⁿ:╤í╘±╫╓╢╬'
  519. obj=chr(160)
  520. ohz=0
  521. ozf=''
  522. ocr=1
  523. ox=1
  524. sele 10
  525. goto top
  526. set color to w+/r,,
  527. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  528. ol=recn()
  529. ozdm=trim(╫╓╢╬├√)
  530. @ 1,60 say '╨▐╕─'
  531. set color to 0/w,,
  532. @ 21,1 say space(78)
  533. @ 21,1 say ojsgs
  534. do while .t.
  535. set color to 0/w,,
  536. @ 21,ox say ''
  537. o=inkey(0)
  538. do case
  539. case o=19.and.ox>1
  540. ox=ox-1
  541. if subs(ojsgs,ox,1)>obj
  542. ox=ox-1
  543. endif
  544. loop
  545. case o=4.and.ox<78
  546. ox=iif(subs(ojsgs,ox,1)>obj,ox+2,ox+1)
  547. loop
  548. case o<127.and.o>31
  549. ozf=iif(subs(ojsgs,ox,1)>obj.and.ocr=1,chr(o)+' ',chr(o))
  550. if ocr=0
  551. if len(trim(ojsgs))+len(ozf)<79
  552. ojsgs=left(stuf(ojsgs,ox,0,ozf),78)
  553. ox=iif(ox<78,ox+1,ox)
  554. @ 21,1 say ojsgs
  555. endif
  556. else
  557. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  558. @ 21,ox say ozf
  559. ox=iif(ox<78,ox+1,ox)
  560. endif
  561. ohz=0
  562. case o>160.and.ox<78
  563. if ohz=0
  564. ozf=chr(o)
  565. ohz=1
  566. else
  567. ozf=ozf+chr(o)
  568. ozf=iif(ocr=1.and.subs(ojsgs,ox,1)<obj.and.subs(ojsgs,ox+1,1)>obj,ozf+' ',ozf)
  569. if ocr=0
  570. if len(trim(ojsgs))+len(ozf)<79
  571. ojsgs=left(stuf(ojsgs,ox,0,ozf),78)
  572. @ 21,1 say ojsgs
  573. ox=iif(ox<77,ox+2,ox)
  574. endif
  575. else
  576. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  577. @ 21,ox say ozf
  578. ox=iif(ox<79,ox+2,ox)
  579. endif
  580. ohz=0
  581. endif
  582. case o=22
  583. ocr=iif(ocr=0,1,0)
  584. @ 1,60 say iif(ocr=0,'▓σ╚δ','╨▐╕─')
  585. case o=7
  586. ojsgs=iif(subs(ojsgs,ox,1)<obj,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  587. @ 21,1 say ojsgs
  588. case o=127.and.ox>1
  589. ox=ox-1
  590. if subs(ojsgs,ox,1)>obj
  591. ox=ox-1
  592. endif
  593. ojsgs=iif(subs(ojsgs,ox,1)<obj,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  594. @ 21,1 say ojsgs
  595. case o=13
  596. keyb chr(24)
  597. sele 10
  598. ozdm0=iif(╟°='A',trim(╫╓╢╬├√),╟°+'->'+trim(╫╓╢╬├√))
  599. if len(trim(ojsgs))+len(ozdm0)<79
  600. ojsgs=left(stuf(ojsgs,ox,0,ozdm0),78)
  601. @ 21,1 say ojsgs
  602. ox=ox+len(ozdm0)
  603. ox=iif(ox>78,78,ox)
  604. endif
  605. case o=23
  606. ojsgs0=ojsgs
  607. do zryy
  608. oer=.f.
  609. on erro oer=.t.
  610. sele 1
  611. set filt to &ojsgs
  612. ojsgs=ojsgs0
  613. goto top
  614. if oer
  615. set color to w+/r,,
  616. @ 1,40 say '▓Θ╤»╠⌡╝■╙╨╬≤!!!'
  617. ok=inkey(2)
  618. set color to w/1,,
  619. @ 1,40 say '               '
  620. else
  621. on erro
  622. exit
  623. endif
  624. case o=24
  625. sele 10
  626. set color to w+/1,,
  627. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  628. if .not.eof()
  629. skip
  630. endif
  631. if eof()
  632. goto top
  633. endif
  634. set color to w+/r,,
  635. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  636. case o=5
  637. sele 10
  638. set color to w+/1,,
  639. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  640. if .not.bof()
  641. skip -1
  642. endif
  643. if bof()
  644. goto bott
  645. endif
  646. set color to w+/r,,
  647. @ ╨╨+2,┴╨+2 say space(╫╓╢╬│ñ╢╚)
  648. endcase
  649. enddo
  650. otjbl=ojsgs
  651. set color to w+/1,,
  652. @ 1,35 say space(44)
  653. @ 21,1 say space(80)
  654. call hj with '00007924'
  655. set color to w+/1,,
  656. set color to 7/1,1/7,
  657. return
  658. ************
  659. * │╔┼·╨▐╕─ *
  660. ************
  661. proc xg
  662. priv ojlh,ozdnr
  663. @ oh,ol get &ozdm
  664. read
  665. ozdnr=&ozdm
  666. ojlh=recn()
  667. repl &ozdm with ozdnr all
  668. goto ojlh
  669. return
  670. ************
  671. * ╫╘╚╗╙∩╤╘ *
  672. ************
  673. proc zryy
  674. priv zh,zrm(8,2),o,om
  675. om=8
  676. dime zrm(8,2)
  677. zrm(1,1)='['
  678. zrm(2,1)=']'
  679. zrm(3,1)='╢°╟╥'
  680. zrm(4,1)='╗≥╒▀'
  681. zrm(5,1)='▓╗╡╚╙┌'
  682. zrm(6,1)='╡╚╙┌'
  683. zrm(7,1)='╨í╙┌'
  684. zrm(8,1)='┤≤╙┌'
  685. zrm(1,2)=[ctod(']
  686. zrm(2,2)=[')]
  687. zrm(3,2)='.and.'
  688. zrm(4,2)='.or.'
  689. zrm(5,2)='#'
  690. zrm(6,2)='='
  691. zrm(7,2)='<'
  692. zrm(8,2)='>'
  693. o=1
  694. do while o<=om
  695. do while .t.
  696. zh=at(zrm(o,1),ojsgs)
  697. if zh>0
  698. ojsgs=stuf(ojsgs,zh,len(zrm(o,1)),zrm(o,2))
  699. else
  700. exit
  701. endif
  702. enddo
  703. o=o+1
  704. enddo
  705. return
  706.  
  707. ************
  708. * ╡τ╫╙▒¿▒φ *
  709. ************
  710. proc brow
  711. set date ansi
  712. set safe off
  713. set color to ,0/3,
  714. priv ozdszd,wzd,ozdmm(20),ozd0,zhzd,ozdczd,ozdx(20),zds,y,y0,sjl,wybz
  715. priv ozdsd,ozdsdc,ozdszd,ozj,y1,objfx
  716. objfx=.t.
  717. dime ozdmm(20),ozdx(20)
  718. if file('&wjm..bro')
  719. rest from &wjm..bro addi
  720. else
  721. ozdszd=1
  722. ozdsdc=0
  723. ozdsd=0
  724. ozdszd=1
  725. ozd0=0
  726. endif
  727. ozj=.f.
  728. wybz=.f.
  729. sele 1
  730. sjl=recn()
  731. y=6
  732. zds=1
  733. zhzd=0
  734. sele 10
  735. use
  736. sele 9
  737. use brow.lby alia i
  738. zap
  739. appe from &wjm..olr
  740. zhzd=recc()
  741. dele for ╟°<>'A'.or.╫╓╢╬│ñ╢╚>74.or.╫╓╢╬└α╨═='M'.or.╫╓╢╬└α╨═='L'
  742. pack
  743. sele 10
  744. use &wjm..olr alia j
  745. sele 9
  746. goto top
  747. do while .not.eof()
  748. zdsmcd=len(trim(╫╓╢╬╦╡├≈))
  749. do case
  750. case zdsmcd<=╫╓╢╬│ñ╢╚
  751. repl sm2 with space(int((╫╓╢╬│ñ╢╚-zdsmcd)/2))+trim(╫╓╢╬╦╡├≈)
  752. case zdsmcd<=╫╓╢╬│ñ╢╚*2
  753. zd1cd=int(zdsmcd/2)+mod(int(zdsmcd/2),2)
  754. zd2cd=zdsmcd-zd1cd
  755. repl sm1 with space(int((╫╓╢╬│ñ╢╚-zd1cd)/2))+left(╫╓╢╬╦╡├≈,zd1cd)
  756. repl sm3 with space(int((╫╓╢╬│ñ╢╚-zd2cd)/2))+subs(╫╓╢╬╦╡├≈,zd1cd+1,zd2cd)
  757. othe
  758. zdsmcd=iif(zdsmcd>╫╓╢╬│ñ╢╚*3,╫╓╢╬│ñ╢╚*3,zdsmcd)
  759. zd1cd=int(zdsmcd/3)+mod(int(zdsmcd/3),2)
  760. zd3cd=zdsmcd-(zd1cd*2)
  761. repl sm1 with space(int((╫╓╢╬│ñ╢╚-zd1cd)/2))+left(╫╓╢╬╦╡├≈,zd1cd)
  762. repl sm2 with space(int((╫╓╢╬│ñ╢╚-zd1cd)/2))+subs(╫╓╢╬╦╡├≈,zd1cd+1,zd1cd)
  763. repl sm3 with space(int((╫╓╢╬│ñ╢╚-zd3cd)/2))+subs(╫╓╢╬╦╡├≈,zd1cd*2+1,zd3cd)
  764. endcase
  765. skip
  766. enddo
  767. load hbk
  768. set color to w/1,,
  769. clear
  770. @ 24,0 say ''
  771. call hbk with '00002479Z'
  772. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:'
  773. sele 1
  774. @ 1,col() say recc() pict '@B'
  775. @ 2,1 say repl('⌐Ñ',39)
  776. @ 22,1 say repl('⌐Ñ',39)
  777. @ 23,2 say 'PgUp/PgDn:╟░║≤╖¡╥│  ^PgUp/^PgDn:╫≤╙╥╖¡╥│  ^Home:╣ñ╛▀▓╦╡Ñ  Esc:═╦│÷'
  778. do dqysd
  779. do dqy
  780. **************
  781. * ╓≈  ╤¡  ╗╖ *
  782. **************
  783. on key=21 do p4
  784. goto top
  785. do xsdqy
  786. do xsjlh
  787. zdmc=ozdmm(zds)
  788. y=6
  789. do while .t.
  790. set color to 0/3,0/3,
  791. @ y,ozdx(zds)-1 say ' '
  792. @ y,ozdx(zds) get &zdmc
  793. @ y,col() say ' '
  794. read
  795. ok=mod(read(),256)
  796. set color to w/1,,
  797. @ y,ozdx(zds)-1 say ' '
  798. @ y,ozdx(zds) say &zdmc pict '@z'
  799. yhx=str(col(),2)
  800. @ y,col() say ' '
  801. @ 24,0 say ''
  802. call hbk with str(y,2)+str(ozdx(zds)-1,2)+yhx+'03a'
  803. call hbk with str(y,2)+yhx+str(y,2)+'03p'
  804. do case
  805. case ok=0.or.ok=2
  806. do zyzd
  807. case ok=1.or.ok=3
  808. do yyzd
  809. case ok=4
  810. do syyh
  811. case ok=5
  812. do xyyh
  813. case ok=15
  814. if objfx
  815. do yyzd
  816. else
  817. do xyyh
  818. endif
  819. case ok=6.and.sjl>1
  820. do sfyy
  821. case ok=7.and..not.wybz
  822. do xfyy
  823. case ok=34.and.ozdszd>1
  824. do zyck
  825. case ok=35.and.ozdszd<zhzd
  826. do yyck
  827. case ok=33
  828. do gjcd
  829. case ok=12.or.ok=14
  830. save to &wjm..bro all like ozd*
  831. return
  832. endcase
  833. enddo
  834. return
  835. ************
  836. * ╙╥╥╞╫╓╢╬ *
  837. ************
  838. proc yyzd
  839. if zds<ozd0
  840. zds=zds+1
  841. zdmc=ozdmm(zds)
  842. else
  843. zds=1
  844. zdmc=ozdmm(zds)
  845. do xyyh
  846. endif
  847. return
  848. ************
  849. * ╫≤╥╞╫╓╢╬ *
  850. ************
  851. proc zyzd
  852. if zds>1
  853. zds=zds-1
  854. zdmc=ozdmm(zds)
  855. endif
  856. return
  857. ************
  858. * ╙╥╥╞┤░┐┌ *
  859. ************
  860. proc yyck
  861. ozdszd=ozdszd+1
  862. @ 3,ozdsdc+2 clear to 21,77
  863. ojl=recn()
  864. y0=y
  865. do dqy
  866. do xsdqy
  867. goto ojl
  868. y=y0
  869. do zyzd
  870. zdmc=ozdmm(zds)
  871. return
  872. ************
  873. * ╫≤╥╞┤░┐┌ *
  874. ************
  875. proc zyck
  876. ozdszd=ozdszd-1
  877. @ 3,ozdsdc+2 clear to 21,77
  878. y0=y
  879. ojl=recn()
  880. do dqy
  881. do xsdqy
  882. goto ojl
  883. y=y0
  884. do yyzd
  885. zdmc=ozdmm(zds)
  886. return
  887.  
  888. ************
  889. * ╧┬╖¡╥╗╥│ *
  890. ************
  891. proc xfyy
  892. goto sjl
  893. skip 16
  894. if eof()
  895. wybz=.t.
  896. skip -16
  897. endif
  898. sjl=recn()
  899. do xsdqy
  900. zdmc=ozdmm(zds)
  901. y=6
  902. do xsjlh
  903. return
  904.  
  905. ************
  906. * ╔╧╖¡╥╗╥│ *
  907. ************
  908. proc sfyy
  909. goto sjl
  910. skip -16
  911. if bof()
  912. goto top
  913. endif
  914. sjl=recn()
  915. do xsdqy
  916. y=6
  917. wybz=.f.
  918. zdmc=ozdmm(zds)
  919. do xsjlh
  920. ozj=.f.
  921. return
  922.  
  923. ************
  924. * ╧┬╥╞╥╗╨╨ *
  925. ************
  926. proc xyyh
  927. if y<21
  928. y=y+1
  929. skip
  930. if eof()
  931. do zjjl
  932. endif
  933. else
  934. skip
  935. if eof()
  936. do zjjl
  937. if ozj
  938. do xsdh
  939. endif
  940. else
  941. sjl=sjl+1
  942. do xsdh
  943. endif
  944. endif
  945. do xsjlh
  946. return
  947. ************
  948. * ╔╧╥╞╥╗╨╨ *
  949. ************
  950. proc syyh
  951. if y>6
  952. y=y-1
  953. skip -1
  954. else
  955. skip -1
  956. if bof()
  957. goto top
  958. else
  959. sjl=recn()
  960. do xssh
  961. endif
  962. endif
  963. do xsjlh
  964. ozj=.f.
  965. return
  966. **************
  967. * ╧╘╩╛╡▒╟░╥│ *
  968. **************
  969. proc xsdqy
  970. priv ojl
  971. sele 1
  972. goto sjl
  973. y=6
  974. do while y<22
  975. do xsyh with y
  976. @ 24,0 say ''
  977. call hbk with str(y,2)+'027703A'
  978. sele 1
  979. if .not.eof()
  980. skip
  981. endif
  982. y=y+1
  983. enddo
  984. sele 1
  985. goto sjl
  986. zd0=1
  987. zdmc=ozdmm(zds)
  988. return
  989. ************
  990. * ╧╘╩╛╥╗╨╨ *
  991. ************
  992. proc xsyh
  993. para y
  994. priv zd0
  995. zd0=1
  996. @ y,2 say ''
  997. do while zd0<=ozd0
  998. ozd=ozdmm(zd0)
  999. sele 1
  1000. @ y,ozdx(zd0) say &ozd pict '@z'
  1001. zd0=zd0+1
  1002. enddo
  1003. return
  1004. ************
  1005. * ╧╘╩╛╡╫╨╨ *
  1006. ************
  1007. proc xsdh
  1008. priv zd0
  1009. call hbk with '06022177T'
  1010. zd0=1
  1011. @ 21,2 say ''
  1012. do while zd0<=ozd0
  1013. ozd=ozdmm(zd0)
  1014. sele 1
  1015. @ 21,ozdx(zd0) say &ozd pict '@z'
  1016. yhx=str(col(),2)
  1017. @ 24,0 say ''
  1018. call hbk with '21'+yhx+'2103p'
  1019. zd0=zd0+1
  1020. enddo
  1021. call hbk with '21772103p'
  1022. call hbk with '21027703a'
  1023. return
  1024. ************
  1025. * ╧╘╩╛╩╫╨╨ *
  1026. ************
  1027. proc xssh
  1028. priv zd0
  1029. call hbk with '06022177U'
  1030. zd0=1
  1031. @ 6,2 say ''
  1032. do while zd0<=ozd0
  1033. ozd=ozdmm(zd0)
  1034. sele 1
  1035. @ 6,ozdx(zd0) say &ozd pict '@Z'
  1036. yhx=str(col(),2)
  1037. @ 24,0 say ''
  1038. call hbk with '06'+yhx+'0603p'
  1039. zd0=zd0+1
  1040. enddo
  1041. call hbk with '06770603p'
  1042. call hbk with '06027703a'
  1043. return
  1044. ************
  1045. * ╬─╝■╢Ñ▓┐ *
  1046. ************
  1047. proc p1
  1048. sele 1
  1049. goto top
  1050. sjl=recn()
  1051. set color to w/1,,
  1052. do xsdqy
  1053. y=6
  1054. return
  1055. ************
  1056. * ╬─╝■╬▓▓┐ *
  1057. ************
  1058. proc p2
  1059. sele 1
  1060. goto bott
  1061. skip -15
  1062. if bof()
  1063. goto top
  1064. endif
  1065. sjl=recn()
  1066. set color to w/1,,
  1067. do xsdqy
  1068. y=6
  1069. return
  1070. ************
  1071. * ▒α╝¡╖╜╧≥ *
  1072. ************
  1073. proc p7
  1074. objfx=iif(objfx,.f.,.t.)
  1075. return
  1076. ************
  1077. * ╓╕╢¿╝╟┬╝ *
  1078. ************
  1079. proc p3
  1080. set color to w/1,0/3,
  1081. @ 1,55 say '╓╕╢¿╝╟┬╝:' get sjl pict '9999999999' rang 1,recc()
  1082. read
  1083. set color to w/1,,
  1084. do xsdqy
  1085. y=6
  1086. return
  1087. ************
  1088. * ╔╛│²╥╗╨╨ *
  1089. ************
  1090. proc p4
  1091. sele 1
  1092. if dele()
  1093. reca
  1094. else
  1095. dele
  1096. endif
  1097. set color to w/1,,
  1098. @ 1,46 say iif(dele(),'╔╛│²','    ')
  1099. return
  1100. ************
  1101. * ▓σ╚δ╥╗╨╨ *
  1102. ************
  1103. proc p5
  1104. priv y0
  1105. sele 1
  1106. inse blan befo
  1107. set color to w/1,,
  1108. y0=y
  1109. do xsdqy
  1110. skip y0-6
  1111. y=y0
  1112. return
  1113. ************
  1114. * ╫╓╢╬╦°╢¿ *
  1115. ************
  1116. proc p6
  1117. set color to w/1,0/3,
  1118. @ 1,55 say '╦°╢¿╫╓╢╬╩²:' get ozdsd pict '9999999999'
  1119. read
  1120. if ozdsd<1.or.ozdsd>ozd0-1
  1121. ozdsd=0
  1122. endif
  1123. sele 9
  1124. loca for ozdmm(ozdsd+1)=╫╓╢╬├√
  1125. ozdszd=recn()
  1126. ozdsdc=ozdx(ozdsd+1)-3
  1127. return
  1128. **************
  1129. * ╝╞╦π╡▒╟░╥│ *
  1130. **************
  1131. proc dqy
  1132. sele 9
  1133. ozdzcd=ozdsdc
  1134. goto ozdszd
  1135. wzd=ozdszd
  1136. ozd0=ozdsd
  1137. set color to 3/1,,
  1138. do while wzd<=zhzd
  1139. if ozdzcd+╫╓╢╬│ñ╢╚+2<78
  1140. ozd0=ozd0+1
  1141. ozdx(ozd0)=ozdzcd+3
  1142. @3,ozdx(ozd0) say trim(sm1)
  1143. @4,ozdx(ozd0) say trim(sm2)
  1144. @5,ozdx(ozd0) say trim(sm3)
  1145. ozdzcd=ozdzcd+╫╓╢╬│ñ╢╚+2
  1146. ozdmm(ozd0)=╫╓╢╬├√
  1147. wzd=recn()
  1148. @ 24,0 say ''
  1149. if ozdzcd<76
  1150. call hbk with '03'+str(ozdzcd+1,2)+'2103p'
  1151. endif
  1152. else
  1153. exit
  1154. endif
  1155. skip
  1156. if eof()
  1157. exit
  1158. endif
  1159. enddo
  1160. call hbk with '03012103p'
  1161. call hbk with '03772103p'
  1162. call hbk with '05027703a'
  1163. call hbk with '03027703b'
  1164. call hbk with '21027703a'
  1165. set color to w/1,,
  1166. return
  1167. ************
  1168. * ╝╞╦π╦°╢¿ *
  1169. ************
  1170. proc dqysd
  1171. priv sd
  1172. set color to 3/1,,
  1173. sd=1
  1174. sele 9
  1175. do while sd<=ozdsd
  1176. loca for ozdmm(sd)=trim(╫╓╢╬├√)
  1177. @3,ozdx(sd) say trim(sm1)
  1178. @4,ozdx(sd) say trim(sm2)
  1179. @5,ozdx(sd) say trim(sm3)
  1180. @ 24,0 say ''
  1181. call hbk with '03'+str(ozdx(sd+1)-2,2)+'2103p'
  1182. sd=sd+1
  1183. enddo
  1184. return
  1185. ************
  1186. * ╫╖╝╙╝╟┬╝ *
  1187. ************
  1188. proc zjjl
  1189. if .not.ozj
  1190. @ 1,56 say '╩╟╖±╫╖╝╙╨┬╝╟┬╝?(Y/N)'
  1191. ok=abs(inkey(0))
  1192. @ 1,56 say '                    '
  1193. ozj=chr(ok)$'Yy'
  1194. endif
  1195. if ozj
  1196. appe blan
  1197. sjl=sjl+1
  1198. else
  1199. goto bott
  1200. if y<21
  1201. y=y-1
  1202. endif
  1203. endif
  1204. sele 1
  1205. @ 1,29 say recc() pict '@b'
  1206. return
  1207. ************
  1208. * ═¿╙├▓╦╡Ñ *
  1209. ************
  1210. proc menu
  1211. para cdx,cdk
  1212. do cdxs with cdx,cdk
  1213. oi=1
  1214. do while .t.
  1215. set color to w+/3,,
  1216. @ 1,(oi-1)*cdk+5 say ' '+tx(oi)+' '
  1217. @ 24,0 say ''
  1218. call hbk with '01'+str((oi-1)*cdk+5,2)+'01'+str(oi*cdk+4,2)+'C'
  1219. OK=INKEY(0)
  1220. set color to 0/w,,
  1221. @ 1,(oi-1)*cdk+5 say ' '+tx(oi)+' '
  1222. @ 24,0 say ''
  1223. call hbk with '01'+str((oi-1)*cdk+5,2)+'01'+str(oi*cdk+4,2)+'D'
  1224. do case
  1225. case ok=19.or.ok=5
  1226. oi=iif(oi>1,oi-1,cdx)
  1227. case ok=4.or.ok=24
  1228. oi=iif(oi<cdx,oi+1,1)
  1229. case ok=13
  1230. o=oi
  1231. exit
  1232. case ok=27
  1233. o=0
  1234. exit
  1235. endcase
  1236. enddo
  1237. set color to w/1,,
  1238. @ 1,1 say space(78)
  1239. call hbk with '00017801A'
  1240. call hbk with '02017801B'
  1241. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:'
  1242. sele 1
  1243. @ 1,col() say recc() pict '@b'
  1244. do xsjlh
  1245. return
  1246. *************
  1247. * ▓╦╡Ñ╧╘╩╛ *
  1248. ************
  1249. proc cdxs
  1250. para cdx,cdk
  1251. priv oi
  1252. set color to w/1,,
  1253. @ 1,1 clear to 1,78
  1254. set color to 0/w,,
  1255. @ 1,5 say space(cdx*cdk)
  1256. @ 24,0 say ''
  1257. call hbk with '010501'+str(cdx*cdk+4,2)+'f'
  1258. oi=1
  1259. do while oi<=cdx
  1260. @ 1,(oi-1)*cdk+6 say tx(oi)
  1261. @ 24,0 say ''
  1262. call hbk with '01'+str((oi-1)*cdk+5,2)+'01'+str(oi*cdk+4,2)+'D'
  1263. oi=oi+1
  1264. enddo
  1265. return
  1266. **************
  1267. * ╧╘╩╛╝╟┬╝║┼ *
  1268. **************
  1269. proc xsjlh
  1270. sele 1
  1271. set color to w/1,,
  1272. @ 1,9 say recn() pict '@b'
  1273. @ 1,46 say iif(dele(),'╔╛│²','    ')
  1274. return
  1275. ************
  1276. * ╣ñ╛▀▓╦╡Ñ *
  1277. ************
  1278. proc gjcd
  1279. set esca off
  1280. PRIV TX(8),o,oi,ok,y0
  1281. set safe off
  1282. oi=1
  1283. DIME TX(8)
  1284. TX(1)='╬─╝■╢Ñ▓┐'
  1285. TX(2)='╬─╝■╬▓▓┐'
  1286. TX(3)='╓╕╢¿╝╟┬╝'
  1287. TX(4)='╔╛│²╥╗╨╨'
  1288. TX(5)='▓σ╚δ╥╗╨╨'
  1289. TX(6)='╫╓╢╬╦°╢¿'
  1290. TX(7)='▒α╝¡╖╜╧≥'
  1291. @ 24,79 SAY ''
  1292. set color to 0/3,0/3,
  1293. @ y,ozdx(zds)-1 say ' '
  1294. @ y,ozdx(zds) get &zdmc
  1295. @ y,col() say ' '
  1296. clear get
  1297. o=0
  1298. do menu with 7,10
  1299. if o>0
  1300. o=str(o,1)
  1301. do p&o
  1302. endif
  1303. set color to w/1,,
  1304. @ 1,1 say space(78)
  1305. call hbk with '00017801A'
  1306. call hbk with '02017801B'
  1307. @ 1,2 say '╝╟┬╝║┼:           ╝╟┬╝╫▄╩²:'
  1308. sele 1
  1309. @ 1,col() say recc() pict '@b'
  1310. do xsjlh
  1311. return
  1312.  
  1313. *******************************************************
  1314. * ▒α│╠╚╒╞┌: 93.11.06   21:31:00
  1315. *******************************************************