home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a056 / 5.ddi / RS / YQMIS001.PRG < prev    next >
Encoding:
Text File  |  1993-12-21  |  21.5 KB  |  1,299 lines

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