home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a056 / 5.ddi / RS / SZRYTJ.PRG < prev    next >
Encoding:
Text File  |  1993-11-06  |  4.7 KB  |  273 lines

  1. *************************
  2. * ╩Σ╚δ╚╬╥Γ╠⌡╝■ ╙├╙┌╣╠╗» *
  3. *************************
  4. para wjm
  5. set proc to szrytj
  6. priv ocr,ox,ohz,o,ozf,oi,oxgs,oxtj,x,oy,c,n,d,k,ojsgs,ojlh,obj
  7. obj=chr(160)
  8. ojlh=1
  9. ojsgs=space(73)
  10. c='╫╓╖√╨═'
  11. n='╩²╓╡╨═'
  12. d='╚╒╞┌╨═'
  13. x=19
  14. y=3
  15. oy=21
  16. ocr=1
  17. oi=1
  18. ox=1
  19. oxgs=1
  20. oxtj=1
  21. sele 10
  22. use &wjm..ozd alia j
  23. set color to w/1,,
  24. clear
  25. call hj with '00007924'
  26. @ 1,30 say '╟δ╩Σ╚δ╥╗╕÷╠⌡╝■▒φ┤∩╩╜'
  27. @ 2,1 say repl('⌐Ñ',39)
  28. @ 22,1 say repl('⌐Ñ',39)
  29. @ 23,1 say space(78)
  30. @ 23,2 say '╟δ╩Σ╚δ╠⌡╝■  ^End:═╦│÷  ╗╪│╡╝ⁿ:╤í╘±╫╓╢╬'
  31. do xskz
  32. do xszdcd
  33. set color to w+/r,0/w,
  34. @ oy,1 say '╠⌡╝■:'
  35. @ oy,6 say space(72)
  36. @ oy,6 say ojsgs
  37. sele 10
  38. do while .t.
  39. set color to w+/r,,
  40. @ oy,ox+5 say ''
  41. o=inkey(0)
  42. do case
  43. case o=19.and.ox>1
  44. ox=ox-1
  45. if asc(subs(ojsgs,ox,1))>160
  46. ox=ox-1
  47. endif
  48. loop
  49. case o=4.and.ox<72
  50. ox=iif(asc(subs(ojsgs,ox,1))>160,ox+2,ox+1)
  51. loop
  52. case o<127.and.o>31
  53. ozf=iif(asc(subs(ojsgs,ox,1))>160.and.ocr=1,chr(o)+' ',chr(o))
  54. if ocr=0
  55. if len(trim(ojsgs))+len(ozf)<=72
  56. ojsgs=left(stuf(ojsgs,ox,0,ozf),72)
  57. ox=iif(ox<72,ox+1,ox)
  58. @ oy,6 say ojsgs
  59. endif
  60. else
  61. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  62. @ oy,ox+5 say ozf
  63. ox=iif(ox<72,ox+1,ox)
  64. endif
  65. ohz=0
  66. case o>160.and.ox<72
  67. if ohz=0
  68. ozf=chr(o)
  69. ohz=1
  70. else
  71. ozf=ozf+chr(o)
  72. ozf=iif(ocr=1.and.subs(ojsgs,ox,1)<obj.and.subs(ojsgs,ox+1,1)>obj,ozf+' ',ozf)
  73. if ocr=0
  74. if len(trim(ojsgs))+len(ozf)<=72
  75. ojsgs=left(stuf(ojsgs,ox,0,ozf),72)
  76. @ oy,6 say ojsgs
  77. ox=iif(ox<72-1,ox+2,ox)
  78. endif
  79. else
  80. ojsgs=stuf(ojsgs,ox,len(ozf),ozf)
  81. @ oy,ox+5 say ozf
  82. ox=iif(ox<72-1,ox+2,ox)
  83. endif
  84. ohz=0
  85. endif
  86. case o=22
  87. call hj with '02140916'
  88. ocr=iif(ocr=0,1,0)
  89. @ 15,4 say iif(ocr=0,'▓σ╚δ','╨▐╕─')
  90. case o=7
  91. ojsgs=iif(asc(subs(ojsgs,ox,1))<160,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  92. @ oy,6 say ojsgs
  93. case o=127.and.ox>1
  94. ox=ox-1
  95. if asc(subs(ojsgs,ox,1))>160
  96. ox=ox-1
  97. endif
  98. ojsgs=iif(asc(subs(ojsgs,ox,1))<160,stuf(ojsgs,ox,1,'')+' ',stuf(ojsgs,ox,2,'')+'  ')
  99. @ oy,6 say ojsgs
  100. case o=13
  101. keyb chr(24)
  102. sele 10
  103. ozdm0=iif(gzq='A',trim(╫╓╢╬├√),gzq+'->'+trim(╫╓╢╬├√))
  104. if len(trim(ojsgs))+len(ozdm0)<71
  105. ojsgs=left(stuf(ojsgs,ox,0,ozdm0),72)
  106. @ oy,6 say ojsgs
  107. ox=ox+len(ozdm0)
  108. ox=iif(ox>72,72,ox)
  109. endif
  110. case o=9
  111. if oy=18
  112. oxgs=ox
  113. ox=oxtj
  114. set color to 0/w,,
  115. @ oy,6 say ojsgs
  116. oy=20
  117. ogs=ojsgs
  118. ojsgs=otj
  119. set color to w+/r,,
  120. @ oy,6 say ojsgs
  121. else
  122. oxtj=ox
  123. ox=oxgs
  124. set color to 0/w,,
  125. @ oy,6 say ojsgs
  126. oy=18
  127. otj=ojsgs
  128. ojsgs=ogs
  129. set color to w+/r,,
  130. @ oy,6 say ojsgs
  131. endif
  132. case o=-9
  133. sele 2
  134. repl zd with a->╫╓╢╬├√,gzq with a->gzq
  135. set color to 0/2,,
  136. @ 11,18 say gzq+'->'+zd
  137. sele 10
  138. case o=23
  139. ok=27
  140. do zryy
  141. sele 1
  142. set filt to &ojsgs
  143. exit
  144. case o=24.and. oi<10
  145. sele 10
  146. set color to 0/3,,
  147. do xszdgd
  148. if recn()<recc()
  149. skip
  150. oi=oi+1
  151. endif
  152. set color to w+/r,,
  153. do xszdgd
  154. case o=5.and.oi>1
  155. sele 10
  156. set color to 0/3,,
  157. do xszdgd
  158. if recn()>1
  159. skip -1
  160. oi=oi-1
  161. endif
  162. set color to w+/r,,
  163. do xszdgd
  164. case o=3.and.ojlh+9<recc()
  165. goto ojlh
  166. skip 10
  167. ojlh=recn()
  168. do xszdcd
  169. case o=18.and.ojlh>10
  170. goto ojlh
  171. skip -10
  172. ojlh=recn()
  173. do xszdcd
  174. endcase
  175. enddo
  176. @ 23,1 say space(78)
  177. set color to 7/1,1/7,
  178. return
  179.  
  180. *******************************
  181. * ╧╘╩╛╫╓╢╬▓╦╡Ñ                *
  182. *******************************
  183. proc xszdcd
  184. priv oi0,ol,c,n,d
  185. c='╫╓╖√╨═'
  186. n='╩²╓╡╨═'
  187. d='╚╒╞┌╨═'
  188. if eof()
  189. return
  190. endif
  191. set color to 0/3,,
  192. oi0=y+3
  193. @ oi0,x+1 clear to oi0+9,x+39
  194. ol=recn()
  195. do while oi0<y+13.and..not.eof()
  196. @ oi0,x+2 say xz pict '@z'
  197. @ oi0,x+5 say gzq+'->'
  198. @ oi0,x+10 say ╫╓╢╬├√
  199. ozdlx=╫╓╢╬└α╨═
  200. @ oi0,x+21 say &ozdlx
  201. @ oi0,x+30 say ╫╓╢╬│ñ╢╚ pict '@z'
  202. @ oi0,x+35 say ╫╓╢╬╨í╩² pict '@z'
  203. oi0=oi0+1
  204. if .not.eof()
  205. skip
  206. endif
  207. enddo
  208. goto ol
  209. oi=1
  210. set color to w+/r,,
  211. do xszdgd
  212. return
  213. *********************
  214. * ╧╘╩╛╫╓╢╬╣Γ┤°      *
  215. *********************
  216. proc xszdgd
  217. @ oi+5,x+4 say space(36)
  218. @ oi+5,x+5 say gzq+'->'
  219. @ oi+5,x+10 say ╫╓╢╬├√
  220. ozdlx=╫╓╢╬└α╨═
  221. @ oi+5,x+21 say &ozdlx
  222. @ oi+5,x+30 say ╫╓╢╬│ñ╢╚ pict '@z'
  223. @ oi+5,x+35 say ╫╓╢╬╨í╩² pict '@z'
  224. return
  225. *******************************
  226. *  ╧╘╩╛╫╓╢╬▓╦╡Ñ┐≥╫╙           *
  227. *******************************
  228. proc xskz
  229. priv x,y
  230. x=19
  231. y=3
  232. do owind with y,x,y+13,x+41,'0/3,,'
  233. set color to ,w+/r,
  234. @ y+1,x+2 say '╣ñ╫≈╟°  ╫╓╢╬├√│╞   └α  ╨═   │ñ╢╚ ╨í╩²'
  235. @ y+2,x+1 say repl('⌐ñ',20)
  236. return
  237. ************
  238. * ╫╘╚╗╙∩╤╘ *
  239. ************
  240. proc zryy
  241. priv zh,zrm(8,2),o,om
  242. om=8
  243. dime zrm(8,2)
  244. zrm(1,1)='['
  245. zrm(2,1)=']'
  246. zrm(3,1)='╢°╟╥'
  247. zrm(4,1)='╗≥╒▀'
  248. zrm(5,1)='▓╗╡╚╙┌'
  249. zrm(6,1)='╡╚╙┌'
  250. zrm(7,1)='╨í╙┌'
  251. zrm(8,1)='┤≤╙┌'
  252. zrm(1,2)=[ctod(']
  253. zrm(2,2)=[')]
  254. zrm(3,2)='.and.'
  255. zrm(4,2)='.or.'
  256. zrm(5,2)='#'
  257. zrm(6,2)='='
  258. zrm(7,2)='<'
  259. zrm(8,2)='>'
  260. o=1
  261. do while o<=om
  262. do while .t.
  263. zh=at(zrm(o,1),ojsgs)
  264. if zh>0
  265. ojsgs=stuf(ojsgs,zh,len(zrm(o,1)),zrm(o,2))
  266. else
  267. exit
  268. endif
  269. enddo
  270. o=o+1
  271. enddo
  272. return
  273.