AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeilenweises Lesen einer TXT-Datei?

Ein Thema von HaCkAttaCk2001 · begonnen am 14. Okt 2004 · letzter Beitrag vom 26. Okt 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von HaCkAttaCk2001
HaCkAttaCk2001

Registriert seit: 4. Nov 2003
Ort: Chemnitz
95 Beiträge
 
#1

Zeilenweises Lesen einer TXT-Datei?

  Alt 14. Okt 2004, 18:34
Hi @ all.

Also Fakt ist das ich nicht viel über FileStreams weiß und ich das hier einfach nicht hinbekomme...

Ich möchte eine stinknormale TXT-Datei in das Programm einlesen. Dann soll jede einzelne Zeile in eine eigene Zeile einer CheckListBox eingefügt werden. Die Zeilenumbrüche sind selbstverständlich immer ein normales Enter.

Edit: Im konkreten Fall habe ich z.b. eine Datei Namens URLs.txt . In der stehen drei Adressen durch Enter separiert:

http://www.blabla.de/text1.txt
http://www.blabla.de/text1.txt
http://www.blabla.de/text1.txt

Und diese Zeilen sollen jeweils eine Zeile in einer CheckListBox belegen.

Wie realisiere ich das?



C ya.
Support bacteria! They are the only culture some people have...
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Zeilenweises Lesen einer TXT-Datei?

  Alt 14. Okt 2004, 18:37
ChecklistBox1.Items.LoadFromFile('c:\meintextfile.txt');
  Mit Zitat antworten Zitat
Benutzerbild von HaCkAttaCk2001
HaCkAttaCk2001

Registriert seit: 4. Nov 2003
Ort: Chemnitz
95 Beiträge
 
#3

Re: Zeilenweises Lesen einer TXT-Datei?

  Alt 14. Okt 2004, 18:43
Hi.

Es gibt da schon sowas? *omg* und ich verbrenn mir hier die grauen Zellen ^^ .


THX ich teste 's gleich mal .


C ya.
Support bacteria! They are the only culture some people have...
  Mit Zitat antworten Zitat
Benutzerbild von HaCkAttaCk2001
HaCkAttaCk2001

Registriert seit: 4. Nov 2003
Ort: Chemnitz
95 Beiträge
 
#4

Re: Zeilenweises Lesen einer TXT-Datei?

  Alt 14. Okt 2004, 18:54
Hi.

Es funktioniert ja soweit... das Problem ist nur, dass das was vorher in der CheckListBox stand, verschwindet. Ich glaub stattdessen müsste man da irgendwas mit Insert nehmen. Nur genau dafür gibts wieder keine "Vereinfachung" :-/ .


C ya.
Support bacteria! They are the only culture some people have...
  Mit Zitat antworten Zitat
_Sebastian_

Registriert seit: 22. Jul 2004
Ort: Lübeck
72 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Zeilenweises Lesen einer TXT-Datei?

  Alt 14. Okt 2004, 19:07
guck dir mal Hier im Forum suchenAssignfile und Hier im Forum suchenReadln an.
Dannn kannste die datei zeilenweise auslesen und unten an die listbox anhängen.
Listbox.Items.add müsste das sein.
  Mit Zitat antworten Zitat
Benutzerbild von HaCkAttaCk2001
HaCkAttaCk2001

Registriert seit: 4. Nov 2003
Ort: Chemnitz
95 Beiträge
 
#6

Re: Zeilenweises Lesen einer TXT-Datei?

  Alt 15. Okt 2004, 17:15
Hi.

Ich hab nun ein wenig Code aus der DP und aus der Delphihilfe benutzt, kombiniert und angepasst, aber anstatt mir jede Zeile in einer eigenen Zeile in der CheckBoxList auszugeben, gibt er mir nur die erste Zeile so oft aus, wie das Dokument Zeilen hat

Ich hab folgenden Code für das Einlesen vorliegen:

Delphi-Quellcode:
    AssignFile(F, OpenDialog1.Files[i]);
  {$I-}
    Reset(F);
  {$I+}
    if IOResult = 0 then
    begin
      while not EOF(F) do
      begin
        ReadLn(F, s1);
        s := s + s1;
        CheckListBox1.Items.Add(s);
      end;
      CloseFile(F);
    end;
Irgendwie verstehe ich auch warum nur die erste Zeile kommt... woher soll Delphi wissen welche Zeile er nun auslesen soll? Aber irgendwie weiß ich nicht wie ich das vermitteln soll .


C ya.
Support bacteria! They are the only culture some people have...
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Zeilenweises Lesen einer TXT-Datei?

  Alt 15. Okt 2004, 17:20
Delphi-Quellcode:
while not EOF(F) do
      begin
        ReadLn(F, s1);
       (1) s := s + s1; // Lass die Zeile mal weg
        CheckListBox1.Items.Add(s); // und schreib hier (sl), dann sollte es laufen.
      end;
in (1) hängst du die neue Zeile an die letzten dran und gibt's nachher alle Zeilen. Das müsste eigentlich so aussehen:
// Testdatei:
a
b
c

// Deine Ausgabe:
a
a
b

a
b
c

.

Wie sind denn s und sl deklariert und initialisiert? Vielleicht läuft da was schief.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Zeilenweises Lesen einer TXT-Datei?

  Alt 15. Okt 2004, 17:21
Ich glaub müßte eher so funktionieren ...

Delphi-Quellcode:
    AssignFile(F, OpenDialog1.Files[i]);
  {$I-}
    Reset(F);
  {$I+}
    if IOResult = 0 then
    begin
      while not EOF(F) do
      begin
        ReadLn(F, s1);
        CheckListBox1.Items.Add(sl);
      end;
      CloseFile(F);
    end;
aber ich würde es eher mit einer weiteren Stringliste machen, das mit AssignFile kommt mir persönlich schon etwas zu alt vor (kommt ja noch von der DOS Zeit ...) aber ...


Delphi-Quellcode:
var tempSL : TStringList;
begin
    tempSL := TStringList.Create;
    tempSL.LoadFromFile(FileName);
    CheckListBox1.AddStrings(tempSL);
    tempSL.Free;
  Mit Zitat antworten Zitat
Benutzerbild von HaCkAttaCk2001
HaCkAttaCk2001

Registriert seit: 4. Nov 2003
Ort: Chemnitz
95 Beiträge
 
#9

Re: Zeilenweises Lesen einer TXT-Datei?

  Alt 15. Okt 2004, 17:29
Hi.

Erstmal danke an euch beide. CheckListBox1.Items.Add(sl); funktioniert . Irgendwie hab ich das selber nicht gesehen...

Und zu den Stringlisten... damit hab ich mich noch weniger beschäftigt als mit FileStreams ^^ . Ich glaub ich mach das erstmal mit AssignFile.

Obwohl, welche von beiden Methoden ist wohl die schnellere? Assignfile oder StringList? Da das was ich derzeit schreibe so schnell wie möglich funktionieren sollte, wäre es mir recht wenn es 'nen Geschwindigkeitsvorteil gäbe.


C ya.
Support bacteria! They are the only culture some people have...
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Zeilenweises Lesen einer TXT-Datei?

  Alt 15. Okt 2004, 17:41
Zitat von HaCkAttaCk2001:
Hi.

Erstmal danke an euch beide. CheckListBox1.Items.Add(sl); funktioniert . Irgendwie hab ich das selber nicht gesehen...

Und zu den Stringlisten... damit hab ich mich noch weniger beschäftigt als mit FileStreams ^^ . Ich glaub ich mach das erstmal mit AssignFile.

Obwohl, welche von beiden Methoden ist wohl die schnellere? Assignfile oder StringList? Da das was ich derzeit schreibe so schnell wie möglich funktionieren sollte, wäre es mir recht wenn es 'nen Geschwindigkeitsvorteil gäbe.


C ya.
Was heißt so schnell wie Möglich ?!?

Wieviele Zeilen liest du ein (wieviel MB hat die Datei, die du einliest ?)

wenn du da um die 100 Zeilen einliest, und nur einmal, dann würde ich nicht schauen, das du den schnellsten Code verwendest, sondern den, der am besten zu lesen / am besten wiederverwendbar ist.

Ansonsten wenn du wirklich geschwindigkeitsvorteil haben möchtest, dann würde ich einen TFileStream machen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:35 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