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

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