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

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