🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.pascal
Article #92634

Re: Kolejny temat Seek i FilePos na plikach tekstowych

#92634
From: Andrzej Grażyński
Date: Thu, 25 Sep 2008 08:30
61 lines
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-mail
References: <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