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

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