Article View: pl.comp.lang.pascal
Article #92634Re: Kolejny temat Seek i FilePos na plikach tekstowych
From: Andrzej Grażyński
Date: Thu, 25 Sep 2008 08:30
Date: Thu, 25 Sep 2008 08:30
61 lines
2352 bytes
2352 bytes
Łukasz 'Maly' Ostrowski pisze:
> Andrzej Grażyński wrote:
>> Dlaczego takich funkcji TextSeek i TextFilePos nie ma w standardowej
>> bibliotece Turbo Pascala i jak można ten brak uzupełnić w BP7?
>
>
> Bo Input i Output są Text'ami, i trudno sobie wyobrazić skakanie
> po standardowym we/wy.
>
> Teraz sobie nie przypominam detali, ale jakoś się da z tego co
> pamiętam dostać do underlying file-handle'a, być może czymś
> w stylu absolute. I wtedy Seek/FilePos robią się wykonalne ;).
>
Zapomniałeś jeszcze o wewnętrznym buforowaniu.
Poniższe funkcje sprawdziłem w BP7:
Function TextFilePos ( var F : Text ) : Longint ;
assembler;
Asm
CMP InOutRes,0
JNE @@Done
LES DI,F
MOV BX,ES:[DI].TextRec.Handle
MOV AX,$4201
XOR CX,CX
XOR DX,DX
INT $21
JNC @@OK
MOV InOutRes,AX
SBB AX,AX
CWD
JMP @@Done
@@OK:
MOV BX,ES:[DI].TextRec.BufEnd
SUB BX,ES:[DI].TextRec.BufPos
SUB AX,BX
SBB DX,0
@@Done:
End;
Procedure TextSeek ( Var F : Text ; N : Longint );
Assembler;
Asm
CMP InOutRes,0
JNE @@Done
LES DI,F
MOV BX,ES:[DI].TextRec.Handle
MOV AX,$4200
MOV CX,N.Word[2]
MOV DX,N.Word[0]
INT $21
JNC @@OK
MOV InOutRes,AX
@@OK:
MOV ES:[DI].TextRec.BufEnd,0
MOV ES:[DI].TextRec.BufPos,0
@@Done:
End;
Technical Details
Message-ID:
<gbfi7f$jp0$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<20080905121945.03f2cdf2.solaris@be.inspired> <gbcnvs$mt8$1@news.onet.pl> <gbfhcu$f72$1@news.dialog.net.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: Andrzej Grażyński <grazynsk@petex.com.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: Kolejny temat Seek i FilePos na plikach tekstowych Date: Thu, 25 Sep 2008 10:30:24 +0200 Organization: Onet.pl Lines: 61 Message-ID: <gbfi7f$jp0$1@news.onet.pl> References: <20080905121945.03f2cdf2.solaris@be.inspired> <gbcnvs$mt8$1@news.onet.pl> <gbfhcu$f72$1@news.dialog.net.pl> NNTP-Posting-Host: 83-238-237-40.adsl.inetia.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1222331439 20256 83.238.237.40 (25 Sep 2008 08:30:39 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Thu, 25 Sep 2008 08:30:39 +0000 (UTC) X-Sender: 2ysppuKZfnIJFd8Xm5/5BA== In-Reply-To: <gbfhcu$f72$1@news.dialog.net.pl> User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit