🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #195

Re: Een grote tekstfile weergeven.

#195
From: Bastiaan
Date: Fri, 28 Jan 2005 13:37
64 lines
4557 bytes
Dr.Ruud <rvtol+news@isolution.nl> schreef in bericht <ctddbt.4p0.1@news.isolution.nl>...

> Als je het nu weer zo opschrijft, begin ik opnieuw te twijfelen aan wat
> je je voorstelt.
> 
> 1. Om (de laatste regel(s) op) het laatste scherm correct weer te geven,
> hoef je *niet* de hele file in te lezen.

Ja, dat moet wel in geval van de testfile, omdat je anders niet weet op
welke positie je moet beginnen. Dat komt door die tabs, want anders was
het gewoon te berekenen. Dus als je de laatste 1930 tekens laat zien,
verandert dat weer als er ergens ervoor een tab staat, b.v. in de laatste
1937. Het gaat dus om de breedtepositie, met welk teken begin je, om te
zorgen dat als je teruggaat met PijlUp, je precies uitkomt. Ik heb dat
getest en het klopt precies.

> 
> 2. Behalve als je als extra eis stelt, dat alle informatie boven het
> laatste scherm precies op een geheel aantal (dat flink groter dan 0 is)
> schermen past.

De hoogtepostie is niet van belang en is eenvoudig in te stellen.

> 
> Maar eis 2 is er eentje die je in de praktijk nooit voor zo'n
> file-lister
> zult hanteren.
> 
> Denk aan de herpaginering van een tekstverwerker, die doet er altijd een
> tijdje over, en dat is logisch.

Natuurlijk. Het enige wat je nodig hebt is een snelle filebuffer.

> 
> Heb je in die random-waarden toevallig ook FFs (ASCII-12) staan? Want
> die kan LIST gebruiken als pagina-grenzen. Als je 7 en 8 overslaat,
> waarom dan 11 (Vertical Tab) niet? Alles van 7-13 kan de cursor-positie
> be�nvloeden. Of doet LIST daar niets mee?

Nee, daar doet-ie niks mee. Het gaat erom dat er karakters zijn die
iets met de indeling doen, en die worden in de berekening naar 'End'
meegenomen. Bij tab is dit duidelijk, vandaar dat ik die als voorbeeld
nam.

Nu ik toch weer aan 't schrijven ben, nog maar eens het voorbeeld.
Je hebt een file met louter ASCII tekens boven de 31, van 16.000.010
bytes groot. Open hem met LIST en druk op End. Nu laat-ie 22 hele regels
zien, en 1 regel van 10. Stel nu dat het 1e teken in die file een tab
is, en je doet hetzelfde. Dan laat list weer 22 hele regels zien, maar
nu 1 regel van 17. Hiervoor moet hij dan wel weten dat er een tab is,
en ook op welke positie die staat in de modulus van 8. Dus moet hij
wel de hele file lezen, anders kan hij die positie van de laatste
regels(s) niet berekenen. (Wis het zweet van mijn voorhoofd :-))

En zeg nu alsjeblieft niet: Die 1e byte kun je toch even checken, want
ik bedoel natuurlijk dat er overal door heel de file heen tabs kunnen
staan. Daarom weet ik zeker dat LIST de hele file leest. En dat in
minder dan 1 seconde, dat vind ik mooi en zou ik ook wel willen. Maar
in BASIC kan ik dat wel vergeten, daarom ga ik speuren naar een andere
methode. Ik weet al geen snelle manier om een sector in te lezen in
BASIC.


Hartelijk dank, Bastiaan.
Technical Details
Message-ID: <41fa4955$0$14124$4d4ebb8e@news.nl.uu.net>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.maxwell.syr.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!lnewsoutpeer01.lnd.ops.eu.uu.net!bnewsinpeer01.bru.ops.eu.uu.net!bnewspost00.bru.ops.eu.uu.net!emea.uu.net!news.nl.uu.net!not-for-mail
References: <41e7d020$0$4377$58c7af7e@news.kabelfoon.nl> <GnZFd.31178$I24.2672738@phobos.telenet-ops.be> <41f50ed3$0$281$4d4ebb8e@news.nl.uu.net> <10va6t6ejodst63@corp.supernews.com> <ct3j0f.1d0.1@news.isolution.nl> <10valcrcncfhm8a@corp.supernews.com> <41f57c8b$0$14124$4d4ebb8e@news.nl.uu.net> <ct53al.1b8.1@news.isolution.nl> <41f68928$0$14113$4d4ebb8e@news.nl.uu.net> <10vd3kfqrk9jv43@corp.supernews.com> <41f6a14a$0$283$4d4ebb8e@news.nl.uu.net> <ct6tmg.4k.1@news.isolution.nl> <41f7d857$0$274$4d4ebb8e@news.nl.uu.net> <ct8ugk.4n8.1@news.isolution.nl> <41f93415$0$14124$4d4ebb8e@news.nl.uu.net> <ctbitc.4kg.1@news.isolution.nl> <41f968a7$0$282$4d4ebb8e@news.nl.uu.net> <ctddbt.4p0.1@news.isolution.nl>

Show Full Headers
Complete Article Headers
X-Google-Thread: 107324,cc6ea8d92fe92f6d
X-Google-Thread: fcea4,cc6ea8d92fe92f6d
X-Google-Attributes: gid107324,gidfcea4,public
X-Google-Language: DUTCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.maxwell.syr.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!lnewsoutpeer01.lnd.ops.eu.uu.net!bnewsinpeer01.bru.ops.eu.uu.net!bnewspost00.bru.ops.eu.uu.net!emea.uu.net!news.nl.uu.net!not-for-mail
From: "Bastiaan" <bastiaan@niet.net>
Newsgroups: nl.comp.programmeren,be.comp.programming
Subject: Re: Een grote tekstfile weergeven.
Date: Fri, 28 Jan 2005 14:37:02 +0100
References: <41e7d020$0$4377$58c7af7e@news.kabelfoon.nl> <GnZFd.31178$I24.2672738@phobos.telenet-ops.be> <41f50ed3$0$281$4d4ebb8e@news.nl.uu.net> <10va6t6ejodst63@corp.supernews.com> <ct3j0f.1d0.1@news.isolution.nl> <10valcrcncfhm8a@corp.supernews.com> <41f57c8b$0$14124$4d4ebb8e@news.nl.uu.net> <ct53al.1b8.1@news.isolution.nl> <41f68928$0$14113$4d4ebb8e@news.nl.uu.net> <10vd3kfqrk9jv43@corp.supernews.com> <41f6a14a$0$283$4d4ebb8e@news.nl.uu.net> <ct6tmg.4k.1@news.isolution.nl> <41f7d857$0$274$4d4ebb8e@news.nl.uu.net> <ct8ugk.4n8.1@news.isolution.nl> <41f93415$0$14124$4d4ebb8e@news.nl.uu.net> <ctbitc.4kg.1@news.isolution.nl> <41f968a7$0$282$4d4ebb8e@news.nl.uu.net> <ctddbt.4p0.1@news.isolution.nl>
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
Lines: 65
Message-ID: <41fa4955$0$14124$4d4ebb8e@news.nl.uu.net>
NNTP-Posting-Host: kf-nawij-fp11-195.dial.kabelfoon.nl
X-Trace: 1106921813 news.nl.uu.net 14124 62.45.9.195:1233
X-Complaints-To: abuse@nl.uu.net