Große Textdateien einlesen
Große Textdateien einlesen
Hallo an alle,
ich habe 21 Textdateien die jede ca 100 000 Zeilen hat,
jede Zeile besteht aus 10 einzelnen Einträgen die mit ";" getrennt sind.
Wie schaffe ich es diese Dateien einzulesen, anzuzeigen und nach einzelen Einträgen zufiltern .
Ein einlesen in eine TMemo dauert bei mir pro Datei ca 40 sec. , jedoch habe ich es noch nicht geschaft in der Komponete nach einem Eintrag zufiltern.
Ich bin für jede Anregung dankbar.
Gruß DIDI01
ich habe 21 Textdateien die jede ca 100 000 Zeilen hat,
jede Zeile besteht aus 10 einzelnen Einträgen die mit ";" getrennt sind.
Wie schaffe ich es diese Dateien einzulesen, anzuzeigen und nach einzelen Einträgen zufiltern .
Ein einlesen in eine TMemo dauert bei mir pro Datei ca 40 sec. , jedoch habe ich es noch nicht geschaft in der Komponete nach einem Eintrag zufiltern.
Ich bin für jede Anregung dankbar.
Gruß DIDI01
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Große Textdateien einlesen
Bei den grössenordnungen macht es sinn eine datenbank zu verwenden sqlite bringt hier schon enorme geschwindigkeitsunterschiede beim filtern.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: Große Textdateien einlesen
Vielleicht findest du hier einige Anregungen:
http://www.mail-archive.com/fpc-pascal@ ... 09820.html" onclick="window.open(this.href);return false;
http://www.mail-archive.com/fpc-pascal@ ... 09820.html" onclick="window.open(this.href);return false;
Re: Große Textdateien einlesen
Ein TSdfDataSet auf das File ansetzen wäre eine einfache Möglichkeit.
Eigenschaft Delimiter auf ';' und Filtered auf True.
Anzeigen via TDatasource in einem TDBGrid.
In OnFilterRecord kann man sowas machen:
Eigenschaft Delimiter auf ';' und Filtered auf True.
Anzeigen via TDatasource in einem TDBGrid.
In OnFilterRecord kann man sowas machen:
Code: Alles auswählen
procedure TForm1.SdfDataSet1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
Accept:=Dataset.Fields[0].AsString='Aha';
end;
Re: Große Textdateien einlesen
Hallo zusammen,
vielen Dank für eure Tips. (Das ging ja schnell)
Ich werde mich mit den Vorschlägen von euch beschäftigen und mich wieder melden.
Gruß DIDI01
vielen Dank für eure Tips. (Das ging ja schnell)
Ich werde mich mit den Vorschlägen von euch beschäftigen und mich wieder melden.
Gruß DIDI01
Re: Große Textdateien einlesen
Hallo, so da bin ich wieder.
Ich habe mich mit den Vorschlägen von euch beschäftigt und komme von einem Problem zum anderen.
@Christian, Ich finde zwar einige Dateien auf der Webseite aber welche und wie muß ich die Installieren ?
@Theo, Deine Möglichkeit war bisher die erfogreichste. Ich habe es geschaft die Dateien einzulesen und zu filtern, jedoch schaffe ich es nicht die Dateien zur Laufzeit mit einem edit.text zu filtern. Kannst du mir da die Richtung zeigen wie das geht?.
Danke nochmals
Gruß DIDI01
Ich habe mich mit den Vorschlägen von euch beschäftigt und komme von einem Problem zum anderen.
@Christian, Ich finde zwar einige Dateien auf der Webseite aber welche und wie muß ich die Installieren ?
@Theo, Deine Möglichkeit war bisher die erfogreichste. Ich habe es geschaft die Dateien einzulesen und zu filtern, jedoch schaffe ich es nicht die Dateien zur Laufzeit mit einem edit.text zu filtern. Kannst du mir da die Richtung zeigen wie das geht?.
Danke nochmals
Gruß DIDI01
Re: Große Textdateien einlesen
Versteh deine Frage nicht ganz. Aber warscheinlich muss dir ein DB Spezialist antworten. Ich kenn mich da nicht so aus.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Große Textdateien einlesen
Was willst du denn installieren ? sqlite ? da brauchst du nur die dll unter windows unter linux installierst du einfach die packages aus dem paketmanagement
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/