/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Antal linjer i tekst fil
Fra : jonathan


Dato : 24-11-02 08:42

Hvordan finder jeg udaf hvor mange antal linjer der er i en tekst fil?

--
Regards
Jonathan
www.cpuid.dk



 
 
Olav M.J. Christians~ (24-11-2002)
Kommentar
Fra : Olav M.J. Christians~


Dato : 24-11-02 11:30

"jonathan" <dsl41894@vip.cybercity.dk> skrev i en meddelelse
news:arpvt5$2ost$1@news.cybercity.dk...
> Hvordan finder jeg udaf hvor mange antal linjer der er i en tekst fil?

Jeg tror desværre kun der er den 'hårde' måde, dvs. at du selv tæller
dem. Noget i retning af dette (ikke testet):

i := 0;
while not eof(tekstfil) do
begin
readln(tekstfil);
inc(i);
end;

Test det for en sikkerheds skyld for grænsetilfælde, f.eks. hvis du har
en tom fil eller en med kun én linje. NB: Du skal selvfølgelig huske at
assigne og åbne (reset) filen, men det skulle forhåbentlig være let nok.

--
M.v.h.
Olav
http://www.experit.dk
Fjern intet for at skrive til mig



Peter Vrist (24-11-2002)
Kommentar
Fra : Peter Vrist


Dato : 24-11-02 11:39

var
t : TStrings;
AntalLinjer : Integer;
begin
t := TStrings.Create;
t.LoadFromFile('c:\minfil.txt');
AntalLinjer := t.Count;
t.free;
end;

Dette er en af metoderne jeg bruger. Er filen kæmpe stor, tager det tid.

Mvh.
Peter Vrist



"jonathan" <dsl41894@vip.cybercity.dk> skrev i en meddelelse
news:arpvt5$2ost$1@news.cybercity.dk...
> Hvordan finder jeg udaf hvor mange antal linjer der er i en tekst fil?
>
> --
> Regards
> Jonathan
> www.cpuid.dk
>
>



jonathan (24-11-2002)
Kommentar
Fra : jonathan


Dato : 24-11-02 12:12

Mange tak.

--
Regards
Jonathan
www.cpuid.dk
"Peter Vrist" <peter.vrist@mail.dk> wrote in message
news:3de0ac5f$0$146$edfadb0f@dread16.news.tele.dk...
> var
> t : TStrings;
> AntalLinjer : Integer;
> begin
> t := TStrings.Create;
> t.LoadFromFile('c:\minfil.txt');
> AntalLinjer := t.Count;
> t.free;
> end;
>
> Dette er en af metoderne jeg bruger. Er filen kæmpe stor, tager det tid.
>
> Mvh.
> Peter Vrist
>
>
>
> "jonathan" <dsl41894@vip.cybercity.dk> skrev i en meddelelse
> news:arpvt5$2ost$1@news.cybercity.dk...
> > Hvordan finder jeg udaf hvor mange antal linjer der er i en tekst fil?
> >
> > --
> > Regards
> > Jonathan
> > www.cpuid.dk
> >
> >
>
>



Lars B. Dybdahl (25-11-2002)
Kommentar
Fra : Lars B. Dybdahl


Dato : 25-11-02 01:22

Denne metode kan ikke anbefales, da den indlæser filen i memory. Benyt i
stedet den metode, som Olav beskrev.

Generelt bør man undlade at bruge memory, hvis man kan lade være...

Lars Dybdahl.

Peter Vrist wrote:

> var
> t : TStrings;
> AntalLinjer : Integer;
> begin
> t := TStrings.Create;
> t.LoadFromFile('c:\minfil.txt');
> AntalLinjer := t.Count;
> t.free;
> end;

--

Dybdahl Engineering: http://dybdahl.dk/
Delphi brugergruppen DAPUG: http://dapug.dk/


jonathan (25-11-2002)
Kommentar
Fra : jonathan


Dato : 25-11-02 02:56

Det er også Olavs metode jeg bruger og det virker fint.

--
Regards
Jonathan
www.cpuid.dk
"Lars B. Dybdahl" <Lars@dybdahl.dk> wrote in message
news:3de16d03$0$188$edfadb0f@dread13.news.tele.dk...
> Denne metode kan ikke anbefales, da den indlæser filen i memory. Benyt i
> stedet den metode, som Olav beskrev.
>
> Generelt bør man undlade at bruge memory, hvis man kan lade være...
>



Peter Vrist (25-11-2002)
Kommentar
Fra : Peter Vrist


Dato : 25-11-02 17:25

Hvorfor det?

LoadFromFile bruger TFileStream som er hurtigere end File. Med hensyn til
RAM, er der er som regel rigeligt af det og med Free er der ryddet pænt op.

Hilsen

Peter Vrist


"Lars B. Dybdahl" <Lars@dybdahl.dk> skrev i en meddelelse
news:3de16d03$0$188$edfadb0f@dread13.news.tele.dk...
> Denne metode kan ikke anbefales, da den indlæser filen i memory. Benyt i
> stedet den metode, som Olav beskrev.
>
> Generelt bør man undlade at bruge memory, hvis man kan lade være...
>
> Lars Dybdahl.
>
> Peter Vrist wrote:
>
> > var
> > t : TStrings;
> > AntalLinjer : Integer;
> > begin
> > t := TStrings.Create;
> > t.LoadFromFile('c:\minfil.txt');
> > AntalLinjer := t.Count;
> > t.free;
> > end;
>
> --
>
> Dybdahl Engineering: http://dybdahl.dk/
> Delphi brugergruppen DAPUG: http://dapug.dk/
>



Uffe Kousgaard (25-11-2002)
Kommentar
Fra : Uffe Kousgaard


Dato : 25-11-02 17:38

"Peter Vrist" <peter.vrist@mail.dk> wrote in message
news:3de24ef6$0$242$edfadb0f@dread16.news.tele.dk...
> Hvorfor det?
>
> LoadFromFile bruger TFileStream som er hurtigere end File. Med hensyn
til
> RAM, er der er som regel rigeligt af det og med Free er der ryddet
pænt op.

Som regel er netop ikke altid. Med File er der altid nok RAM.


Konrad (05-12-2002)
Kommentar
Fra : Konrad


Dato : 05-12-02 13:55

"Lars B. Dybdahl" <Lars@dybdahl.dk> wrote in message news:<3de16d03$0$188$edfadb0f@dread13.news.tele.dk>...
> Denne metode kan ikke anbefales, da den indlæser filen i memory. Benyt i
> stedet den metode, som Olav beskrev.

Olavs eksempel indlæser da også filen - den gemmer blot ikke indholdet
i et objekt. Olavs metode er endvidere langsommere end indlæsning af
filen vha TStrings/TStringList...Desværre *er* man pisket til at læse
indholdet af filen og som minimum tælle mængden af linebreaks -
filesize og seek fungerer svjh ikke "specielt" fremragende i relation
til tekstfiler

> Generelt bør man undlade at bruge memory, hvis man kan lade være...

Interessant synspunkt. Jeg ville mene det stik modsatte - ram er trods
alt nemmere at håndtere og tilmed endda temmelig meget hurtigere, dvs
generelt mere taknemmeligt. Men undlader man notorisk ikke at rydde op
efter sig er det naturligvis en meget god tommelfingerregel )

mvh
David A. D. Konrad

Søg
Reklame
Statistik
Spørgsmål : 177483
Tips : 31964
Nyheder : 719565
Indlæg : 6408395
Brugere : 218884

Månedens bedste
Årets bedste
Sidste års bedste