🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #315

Re: Een grote tekstfile weergeven.

#315
From: Bastiaan
Date: Tue, 25 Jan 2005 17:46
70 lines
4363 bytes
Dr.Ruud <rvtol+news@isolution.nl> schreef in bericht <ct53al.1b8.1@news.isolution.nl>...

> Toen ik Bastiaan kietelde, kwam er dit uit:
> > Meindert Sprang:
> >> Dr.Ruud:
> >>> Meindert Sprang:
> 
> >>>> [LIST.COM van Vernon D. Buerg]
> >>>> Die leest echt die hele file niet in. Die leest maximaal 64kb
> >>>> van de file (COM programma, datasegment + stack maximaal 64 kb.
> 
> >>> Dat 'COM kan maximaal 64 kB' is niet zo:
> >>>
> http://www.faqs.org/faqs/assembly-language/x86/general/part3/section-2.html
> 
> >> Klopt, maar dan moet je meer moeite doen en met segmenten gaan
> >> rommelen. Waar ik op doelde is dat default en COM programma 64 kb
> >> code en 64kb dataspace krijgt toegewezen.
> 
> > Ik geloof zelfs dat codesegment en datasegment dezelfde zijn.
> 
> Ahum, sinds wanneer zijn DS (en ES en etc.) Read-Only?

Wie heeft het daar over?

> 
> > Nog eens over LIST.COM: Ik heb een file gemaakt met willekeurige data
> > maar zonder stuurtekens. 16 MB groot. Wrap aan. Als ik nu op End druk
> > is hij daar binnen de seconde. De plaats waar de regels beginnen,
> > staat dan al vast, en bij het terugscrollen naar het begin blijkt dat
> > ook te kloppen. Extra onberijpelijk is dat er wel tabs in zitten, die
> > expanded worden weergegeven. Dat hij die hele file leest in < 1 sec.
> > kan er bij mij niet in, maar toch weet hij waar de regels beginnen en
> > klopt dat t.o.v. het begin. M�t tabs. Rara.
> 
> A. Je weet hoe groot de file is.
> B. Je weet hoeveel tekens je maximaal tegelijk op het scherm gaat
> zetten.
> 
> 1. Lees uit het einde van de file een blok in met minimaal die grootte.
> 2. Loop door dat blok en verzamel de offsets van de tekstregels (en als
> dat een rol speelt: het aantal schermregels dat die tekstregel nodig
> heeft)
> 3. etc.
> 
> Je schrijft: "Dat hij die hele file leest in < 1 sec. kan er bij mij
> niet
> in" maar dat gebeurt dan ook helemaal niet, want waarom zou hij?

Wat je precies bedoelt met 'verzamel de offsets'. Maar ik zal mijn
voorbeeld verfijnen: Je hebt een file met tekst van zeg 16MB groot,
waar geen stuurtekens zoals CR LF enzo in zitten, maar w�l tabs. Dan is
het begin van de laatste regel puur afhankelijk van het aantal tabs wat
er in de file zitten, en die moeten ook gelezen worden om de positie
van die laatste regel te bepalen. Nou, LIST doet dat zonder mankeren,
ook al is die file 16 MB. D�t is nou juist zo frappant.

Dit antwoord is ook aan Meindert. Als er nou ergens in het begin van
de file ergens een letter in een tab verandert, verandert meestal de
positie van het begin de regels na die tab ook. En als je na het
openen van de 16 MB file (kost geen tijd) op End drukt, duurt het nog
geen seconde en de laatste pagina (waarvan de positie bepaald wordt
door de tabs overal in de file) staat op de juiste positie in beeld.
Ga je dan met PijlOmhoog terug naar het begin, dan zie je dat het
precies uitkomt. Rara....

Oh ja, ik heb het over de gewrapte weergave. Dus zeg maar 80 breed.


Hartelijk dank, Bastiaan.
Technical Details
Message-ID: <41f68928$0$14113$4d4ebb8e@news.nl.uu.net>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!syros.belnet.be!news.belnet.be!transit.news.xs4all.nl!bnewsoutpeer00.bru.ops.eu.uu.net!bnewsinpeer00.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>

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!news4.google.com!news.glorb.com!syros.belnet.be!news.belnet.be!transit.news.xs4all.nl!bnewsoutpeer00.bru.ops.eu.uu.net!bnewsinpeer00.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: Tue, 25 Jan 2005 18:46:10 +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>
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: 70
Message-ID: <41f68928$0$14113$4d4ebb8e@news.nl.uu.net>
NNTP-Posting-Host: kf-nawij-fp11-045.dial.kabelfoon.nl
X-Trace: 1106676008 news.nl.uu.net 14113 62.45.9.45:1463
X-Complaints-To: abuse@nl.uu.net