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

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