CSV-Datei einlesen / Daten suchen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Latze
Beiträge: 60
Registriert: Sa 4. Jul 2009, 09:11
OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
CPU-Target: 32Bit/64Bit

CSV-Datei einlesen / Daten suchen

Beitrag von Latze »

Hallo,

ich hab hier eine Datei, die diverse Informationen zu Orten enthält. Es sind eben mehrere Zeilen mit den einzelnen Werten (durch Tabulator getrennt), in der ersten Zeile sind die Feldnamen. Diese Datei lese ich mit Hilfe von SdfDataSet und Datasource ein und stelle sie in einem DBGrid dar, wobei die Feldnamen auch als Datensatz angezeigt werden.

Ich kriege soweit alles (halbwegs) hin nur die Suche nach einem Datensatz bereitet mir Kopfzerbrechen, kann mir jemand helfen?


Gruß
Latze
Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.

Benutzeravatar
theo
Beiträge: 10863
Registriert: Mo 11. Sep 2006, 19:01

Re: CSV-Datei einlesen / Daten suchen

Beitrag von theo »

Bin kein Spezialist dafür, aber hast du diese Seiten schon gelesen?
http://wiki.lazarus.freepascal.org/Laza ... a_data_set" onclick="window.open(this.href);return false;
http://wiki.lazarus.freepascal.org/Laza ... xedDataset" onclick="window.open(this.href);return false;

Latze
Beiträge: 60
Registriert: Sa 4. Jul 2009, 09:11
OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
CPU-Target: 32Bit/64Bit

Re: CSV-Datei einlesen / Daten suchen

Beitrag von Latze »

Danke für die Tipps, hat mich leider noch nicht so richtig zum Ziel gebracht.

Gruß
Latze
Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.

Benutzeravatar
theo
Beiträge: 10863
Registriert: Mo 11. Sep 2006, 19:01

Re: CSV-Datei einlesen / Daten suchen

Beitrag von theo »

Latze hat geschrieben:Danke für die Tipps, hat mich leider noch nicht so richtig zum Ziel gebracht.
Warum denn?
Ich habe echt keinen Dunst von der Sache, aber ich hab mal 5 Minuten rumgespielt.

Das funzt bei mir um einen Datensatz zu finden:

Code: Alles auswählen

SdfDataSet1.First;
while not SdfDataSet1.EOF do
begin
 if SdfDataSet1.Fields[0].AsString='Bass' then break;
  SdfDataSet1.Next;
end;
Ich habe keine Ahnung, ob es da bessere Wege gibt.

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Re: CSV-Datei einlesen / Daten suchen

Beitrag von khh »

Latze hat geschrieben:Hallo,

ich hab hier eine Datei, die diverse Informationen zu Orten enthält. Es sind eben mehrere Zeilen mit den einzelnen Werten (durch Tabulator getrennt), in der ersten Zeile sind die Feldnamen. Diese Datei lese ich mit Hilfe von SdfDataSet und Datasource ein und stelle sie in einem DBGrid dar, wobei die Feldnamen auch als Datensatz angezeigt werden.

Ich kriege soweit alles (halbwegs) hin nur die Suche nach einem Datensatz bereitet mir Kopfzerbrechen, kann mir jemand helfen?


Gruß
Latze
vieleicht ist es ja mit Kanonen auf Spatzen geschossen,
aber so was schreit doch nach einer DB

Latze
Beiträge: 60
Registriert: Sa 4. Jul 2009, 09:11
OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
CPU-Target: 32Bit/64Bit

Re: CSV-Datei einlesen / Daten suchen

Beitrag von Latze »

Hallo
theo hat geschrieben:

Code: Alles auswählen

SdfDataSet1.First;
while not SdfDataSet1.EOF do
begin
 if SdfDataSet1.Fields[0].AsString='Bass' then break;
  SdfDataSet1.Next;
end;
Mist, funktioniert hier auch einwandfrei. Keine Ahnung, was ich da wieder verwurschtelt hab. War wohl einer der Tage, wo man am besten wieder ins Bett gehen und nichts anfassen sollte um keinen Schaden anzurichten. :roll: Danke für den Schubs in die richtige Richtung.
theo hat geschrieben:Ich habe keine Ahnung, ob es da bessere Wege gibt.
Na ja, etwas schneller wäre nicht schlecht aber es funktioniert und darauf kommt es an. 5,2MB werden in 18 Sekunden durchsucht.
khh hat geschrieben: vieleicht ist es ja mit Kanonen auf Spatzen geschossen,
aber so was schreit doch nach einer DB
Am liebsten packe ich sowas in meinen SQL-Server aber die Anwendung soll auch ohne auskommen, damit sie auf 'kleinen' PC's oder auch direkt von einem USB-Stick laufen kann. Das ganze dann auch ohne Internetanbindung.

'verwirrte' Grüße, Latze
Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6766
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: CSV-Datei einlesen / Daten suchen

Beitrag von af0815 »

Latze hat geschrieben:Am liebsten packe ich sowas in meinen SQL-Server aber die Anwendung soll auch ohne auskommen, damit sie auf 'kleinen' PC's oder auch direkt von einem USB-Stick laufen kann. Das ganze dann auch ohne Internetanbindung.
Wenn die Geschwindigkeit zur Notwendigkeit wird, entweder selbst die Daten nach den Kriterien sortieren (Indexlisten, Bäume,...) und optimieren oder auf lokale DB(-Server) umstellen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten