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

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