Hallo go4hl80ve,
versuche es mal damit.
Getestet habe ich es mit der vom Bundeswahlleiter veröffentlichten .csv Datei "kerg2005.csv" (Wahlergebnisse je Wahlkreis).
Scheint zu funktionieren.
Für diese Datei würdest Du die Prozedur aufrufen mit
CSVtoStringGrid(stringgrid1,'kerg2005.csv',';');
Das kann man sicherlich noch optimieren.
Delphi-Quellcode:
PROCEDURE CSVtoStringGrid(sg:TStringGrid; dsn:string; delimiter:char);
var slist:TStrings; i,j,k,c,maxcols:integer; s:string;
begin
slist:=TStringList.Create;
slist.LoadFromFile(dsn);
// maximale Anzahl der Spalten ermitteln
maxcols:=0;
for i:=0 to slist.count-1 do begin
c:=0;
s:=slist[i];
for j:=1 to Length(s) do
if s[j]=delimiter then inc(c);
if c>maxcols then maxcols:=c;
end;
with sg do begin
// Anzahl Zeilen und Spalten festlegen
ColCount:=FixedCols+maxcols;
RowCount:=FixedRows+slist.Count;
// Daten in Stringgrid übertragen
for i:=0 to slist.count-1 do begin
s:=slist[i];
c:=FixedCols;
k:=1;
for j:=1 to Length(s) do
if s[j]=delimiter then begin
cells[c,i+FixedRows]:=Copy(s,k,j-k);
inc(c);
k:=j+1;
end;
cells[c,i+FixedRows]:=Copy(s,k,Length(s)-k+1);
end;
end;
slist.free;
end;