home *** CD-ROM | disk | FTP | other *** search
- para zdz,qrh,qlh,lj,sl,rj,cdhs
- priv zdz,pgs,ns,n,ij,ji,mm,nn,mn,hzts0,hzts1,rn,r,cn,p,c
- go bott
- mn=recn()
- pgs=1
- go top
- do while .t.
- ns=0
- n=0
- ij=1
- nn=0
- mm=0
- @ qrh,qlh clear to qrh+rj*(cdhs-1),qlh+lj*sl-1
- do while ij<=cdhs
- ji=1
- do while ji<=sl
- if .not.eof()
- @ qrh+(ij-1)*rj,qlh+lj*(ji-1) say trim(&zdz)
- skip
- ji=ji+1
- loop
- endif
- mm=ij
- nn=ji-1
- exit
- enddo
- if eof()
- if ji=sl+1
- mm=ij
- nn=sl
- else
- exit
- endif
- exit
- endif
- ij=ij+1
- enddo
- if mm=0.and.nn=0
- mm=cdhs
- nn=sl
- endif
- skip -((mm-1)*sl+nn)
- hzts0=trim(&zdz)
- hzts1=hzts0
- @ qrh,qlh get hzts0
- clear gets
- r=qrh
- c=qlh
- do while .t.
- rn=r
- cn=c
- set console off
- do while .t.
- p=inkey()
- if p<>0
- exit
- endif
- enddo
- set console on
- do case
- case p=5.or.p=73.or.p=105
- if r=qrh
- if c<qlh+nn*lj
- r=qrh+(mm-1)*rj
- n=(mm-1)*sl
- ns=ns-n
- else
- r=qrh+(mm-2)*rj
- n=(mm-2)*sl
- ns=-n
- endif
- else
- r=r-rj
- n=-sl
- ns=ns+sl
- endif
- case p=24.or.p=77.or.p=109
- if ;
- r=qrh+(mm-1)*rj.or.(r=qrh+(mm-2)*rj.and.c>qlh;
- +(nn-1)*lj)
- r=qrh
- if c<qlh+nn*lj
- n=-(mm-1)*sl
- ns=ns-n
- else
- n=-(mm-2)*sl
- ns=-n
- endif
- else
- r=r+rj
- n=sl
- ns=ns-sl
- endif
- case p=4.or.p=75.or.p=107
- if r=qrh+(mm-1)*rj.and.c=qlh+(nn-1)*lj
- r=qrh
- c=qlh
- n=-((mm-1)*sl+nn-1)
- ns=ns-n
- else
- if c=qlh+(sl-1)*lj
- c=qlh
- r=r+rj
- else
- c=c+lj
- endif
- n=1
- ns=ns-1
- endif
- case p=19.or.p=74.or.p=106
- if r=qrh.and.c=qlh
- r=qrh+(mm-1)*rj
- c=qlh+(nn-1)*lj
- n=(mm-1)*sl+nn-1
- ns=ns-n
- else
- if c=qlh
- c=qlh+(sl-1)*lj
- r=r-rj
- else
- c=c-lj
- endif
- n=-1
- ns=ns+1
- endif
- case p=13.or.p=80.or.p=112
- loop
- case p=76.or.p=108.or.p=18
- if pgs>1
- pgs=pgs-1
- skip ns
- skip -cdhs*sl
- exit
- endif
- case p=44.or.p=3
- if cdhs*sl*pgs<mn
- pgs=pgs+1
- skip ns
- skip cdhs*sl
- exit
- endif
- case p=32.or.p=27
- exit
- other
- loop
- endcase
- skip n
- n=0
- @ rn,cn say hzts1
- hzts0=trim(&zdz)
- @ r,c get hzts0
- clear gets
- hzts1=hzts0
- enddo
- if p=32.or.p=27
- exit
- endif
- enddo
- retu