AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

zeilen in txt datei zählen

Ein Thema von G G · begonnen am 26. Jan 2006 · letzter Beitrag vom 27. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2   
G G

Registriert seit: 17. Jun 2004
192 Beiträge
 
#1

zeilen in txt datei zählen

  Alt 26. Jan 2006, 22:05
hallo wie kann cih denn zeilen von einer text datei zählen

also irgdnwie mit

AssignFile (f, path);

usw

aber ich hab keine ahnung wie man dann herausfindet was die letzte zeile ist so dass ma z.B die mit

readln auslesen kann muss man ja wissen welche nummer die hat?

vielen dank
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: zeilen in txt datei zählen

  Alt 26. Jan 2006, 22:09
Also ein simpelsten wäre es doch, den Text einfach in eine Stringlist / Memo zu laden und dann über count-1 das letzte Array der Liste ansprechen.

Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: zeilen in txt datei zählen

  Alt 26. Jan 2006, 22:11
Nein, du musst nicht die Zeilennummer wissen um mit readln eine Zeile auszulesen.

Readln liest zeile für zeile ein. eine nach der anderen.

Ob Du am Ende bist kannst Du mit Eof abfragen.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: zeilen in txt datei zählen

  Alt 26. Jan 2006, 22:25
Stringlist ist unnötig. Wozu das ? In einem Programm habe ich eine Gauge, um den Fortschritt anzuzeigen. Dazu brauche ich aber die Zeilenanzahl einer nicht kleinen Datei (1.000.000 Zeilen ?). Die paar Zeilen hier halten mich ca. 0,1 Sek. auf :

Delphi-Quellcode:
  AssignFile (k,Dateiname');
reset (k);
WHILE NOT EOF (k) DO BEGIN
ZeilenAnzahl := ZeilenAnzahl + 1;
readln (k);
END;
gaugeFortschritt.MaxValue := ZeilenAnzahl;
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: zeilen in txt datei zählen

  Alt 26. Jan 2006, 22:27
und wie lang hält dich das Laden in eine Stringlist auf?

oder wieviel mal schneller wäre es ohne gauge?
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
G G

Registriert seit: 17. Jun 2004
192 Beiträge
 
#6

Re: zeilen in txt datei zählen

  Alt 26. Jan 2006, 22:29
hm ich schein zu blöd zu sein für sowas, also ich hab mri jetzt nen code erarbeitet aber der macht ncih so des was ich will:


Delphi-Quellcode:
    f:file of byte;

  path : string;
    a,t : integer;
begin

idone :=id.receiver.Caption;

path := ExtractFilePath(application.ExeName)+'logs\'+idone+'.txt';


 if fileexists(path)then begin

   AssignFile (f, path);
Reset (f);

    a := 0;
    seek(f,0);
   while not eof(f) do begin
   readln(f,a);
a := a+1;
      end;


      while t < 15 do begin

        id.listbox1.items.add(ReadLn (f,a));
           a := a+1;
          t := t+1;
      end;

      closefile(f);

hm nur dies geht nicht. Also zur erklärung a soll im enfeffekt die letzte zeilenzahl angeben, und dann die schleife danach zieht die letzten 16 zeilen in eine listbox. nur des will leider nicht

kann mir da wer wieterhelfen.Vielen dank
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: zeilen in txt datei zählen

  Alt 26. Jan 2006, 22:38
Versuch mal folgendes...

war nicht gewünscht
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: zeilen in txt datei zählen

  Alt 26. Jan 2006, 22:39
warum nicht so?


Delphi-Quellcode:
procedure LoadLast15LinesOfFile(aFileName: string; aListBox: TListbox);
var
  i: integer;
begin
   aListBox.Sorted := false;
   aListBox.Items.LoadFromFile(aFileName);
   for i := aListbox.Count - 1 downto 15 do
      aListBox.Items.Delete(i);
end;
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
G G

Registriert seit: 17. Jun 2004
192 Beiträge
 
#9

Re: zeilen in txt datei zählen

  Alt 26. Jan 2006, 22:45
hm ja guenthers meinst du nich dass indem man alles reinläd sehr viel resocuren verbraucht werden, bei son paar mb wird des dochs icher paar sekunden brauchen, oder geht des laden in eine listbox so schnell?


hm und omata dein tipp würd doch einfahc alle hinzufüen. Aber was ich eigentlcih iwll ist ja nur die hinteren. Deswgeen woll tich ja wissen wieviel zeilen insgesamt und dnan mit readln diese die ich will dann auslesen.

und nicht mit listbox einlesen um halt rechenzeit zu sparen?


wenn dies irgdnwie möglich ist
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: zeilen in txt datei zählen

  Alt 26. Jan 2006, 23:00
Tja bis jetzt war ja nicht bekannt, dass es sich um sooo große Textdateien handelt.

Wenn Du weißt wieviele Zeichen sich in einer Zeile befinden und das immer exakt gleich viele sind, könntest Du hergehen, und dir ausrechnen, wohin Du mit Seek springen musst.

Ansonsten musst Du entweder alles laden oder zuerst mal zählen gehen, wieviel Zeilen vorhanden sind.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz