Article View: nl.comp.programmeren
Article #195Re: Een grote tekstfile weergeven.
From: Bastiaan
Date: Fri, 28 Jan 2005 13:37
Date: Fri, 28 Jan 2005 13:37
64 lines
4557 bytes
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-mailReferences:
<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