Warum so kompliziert, wenn es doch so schön einfach geht:
Delphi-Quellcode:
var
con : TADOConnection;
qry : TADOQuery;
MyFile :
string;
begin
MyFile := '
M:\modules Delphi\CSVreader\config.csv';
con := TADOConnection.Create(
nil );
try
con.ConnectionString := '
Driver={Microsoft Text-Treiber (*.txt; *.csv)};Extensions=asc,csv,tab,txt;';
con.LoginPrompt := False;
con.DefaultDatabase := ExtractFileDir( MyFile );
con.Open;
try
qry := TADOQuery.Create( con );
qry.Connection := con;
qry.SQL.Text := Format( '
SELECT * FROM %s WHERE Firma = %s', [ ExtractFileName( MyFile ), QuotedStr( '
A' ) ] );
qry.Open;
try
while not qry.Eof
do
begin
// Verarbeitung der Daten z.B. mit qry.FieldByName( 'Firma' ).AsString
qry.Next;
end;
finally
qry.Close;
end;
finally
con.Close;
end;
finally
con.Free;
end;
end;
Es wird in dem Verzeichnis mit den Daten aber auch noch die Datei
schema.ini benötigt
In deinem Fall sollte folgender Inhalt genügen
Code:
[config.csv]
Format=Delimited(;)
Man könnte alternativ die Daten auch mit TADOTable auslesen und dann einen Filter setzen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)