home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a056 / 4.ddi / MAIN / YQMIS015.PRG < prev    next >
Encoding:
Text File  |  1993-11-02  |  21.7 KB  |  1,311 lines

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