home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 6 / 06.iso / b / b032 / 6.img / 31 / CD.PRG < prev    next >
Encoding:
Text File  |  1987-09-03  |  2.3 KB  |  159 lines

  1. para zdz,qrh,qlh,lj,sl,rj,cdhs
  2. priv zdz,pgs,ns,n,ij,ji,mm,nn,mn,hzts0,hzts1,rn,r,cn,p,c
  3. go bott
  4. mn=recn()
  5. pgs=1
  6. go top
  7. do while .t.
  8. ns=0
  9. n=0
  10. ij=1
  11. nn=0
  12. mm=0
  13. @ qrh,qlh clear to qrh+rj*(cdhs-1),qlh+lj*sl-1
  14. do while ij<=cdhs
  15.  ji=1
  16.  do while ji<=sl
  17.   if .not.eof()
  18.    @ qrh+(ij-1)*rj,qlh+lj*(ji-1) say trim(&zdz)
  19.    skip
  20.    ji=ji+1
  21.    loop
  22.   endif
  23.    mm=ij
  24.    nn=ji-1
  25.    exit
  26.  enddo
  27.  if eof()
  28.   if ji=sl+1
  29.    mm=ij
  30.    nn=sl
  31.   else
  32.    exit
  33.   endif
  34.   exit
  35.  endif
  36.  ij=ij+1
  37. enddo
  38. if mm=0.and.nn=0
  39.  mm=cdhs
  40.  nn=sl
  41. endif
  42. skip -((mm-1)*sl+nn)
  43. hzts0=trim(&zdz)
  44. hzts1=hzts0
  45. @ qrh,qlh get hzts0
  46. clear gets
  47. r=qrh
  48. c=qlh
  49. do while .t.
  50.  rn=r
  51.  cn=c
  52.  set console off
  53.  do while .t.
  54.   p=inkey()
  55.   if p<>0
  56.    exit
  57.   endif
  58.  enddo
  59.  set console on
  60.  do case
  61.   case p=5.or.p=73.or.p=105
  62.    if r=qrh
  63.     if c<qlh+nn*lj
  64.      r=qrh+(mm-1)*rj
  65.      n=(mm-1)*sl
  66.      ns=ns-n
  67.     else
  68.      r=qrh+(mm-2)*rj
  69.      n=(mm-2)*sl
  70.      ns=-n
  71.     endif
  72.    else
  73.     r=r-rj
  74.     n=-sl
  75.     ns=ns+sl
  76.    endif
  77.   case p=24.or.p=77.or.p=109
  78.    if ;
  79. r=qrh+(mm-1)*rj.or.(r=qrh+(mm-2)*rj.and.c>qlh;
  80. +(nn-1)*lj)
  81.     r=qrh
  82.      if c<qlh+nn*lj
  83.       n=-(mm-1)*sl
  84.       ns=ns-n
  85.      else
  86.       n=-(mm-2)*sl
  87.       ns=-n
  88.      endif
  89.     else
  90.      r=r+rj
  91.      n=sl
  92.      ns=ns-sl
  93.     endif
  94.    case p=4.or.p=75.or.p=107
  95.     if r=qrh+(mm-1)*rj.and.c=qlh+(nn-1)*lj
  96.      r=qrh
  97.      c=qlh
  98.      n=-((mm-1)*sl+nn-1)
  99.      ns=ns-n
  100.     else
  101.      if c=qlh+(sl-1)*lj
  102.       c=qlh
  103.       r=r+rj
  104.      else
  105.       c=c+lj
  106.      endif
  107.      n=1
  108.      ns=ns-1
  109.     endif
  110.    case p=19.or.p=74.or.p=106
  111.     if r=qrh.and.c=qlh
  112.      r=qrh+(mm-1)*rj
  113.      c=qlh+(nn-1)*lj
  114.      n=(mm-1)*sl+nn-1
  115.      ns=ns-n
  116.     else
  117.      if c=qlh
  118.       c=qlh+(sl-1)*lj
  119.       r=r-rj
  120.      else
  121.       c=c-lj
  122.      endif
  123.       n=-1
  124.       ns=ns+1
  125.     endif
  126.   case p=13.or.p=80.or.p=112
  127.    do &zxcx
  128.   case p=76.or.p=108.or.p=18
  129.    if pgs>1
  130.     pgs=pgs-1
  131.     skip ns
  132.     skip -cdhs*sl
  133.     exit
  134.    endif
  135.   case p=44.or.p=3
  136.    if cdhs*sl*pgs<mn
  137.     pgs=pgs+1
  138.     skip ns
  139.     skip cdhs*sl
  140.     exit
  141.    endif
  142.   case p=32.or.p=27
  143.    exit
  144.   other
  145.    loop
  146.  endcase
  147.  skip n
  148.  n=0
  149.  @ rn,cn say hzts1
  150.  hzts0=trim(&zdz)
  151.  @ r,c get hzts0
  152.  clear gets
  153.  hzts1=hzts0
  154. enddo
  155. if p=32.or.p=27
  156. exit
  157. endif
  158. enddo
  159.