Hola!!
puedes realizar la separación de la cadena con un TStringList pero tienes que poner a true el parametro StrictDelimiter, que te eliminara las comillas envolventes del texto y solo realiza el corte en el delimitador.
Aquí te dejo un ejemplo simple de uso:
Código Delphi
[-]var
parser: TStrings;
i, j:Integer;
begin
with TStringList.Create do
try
LoadFromFile('c:\tmp\test_csv.csv');
try
parser := TStringList.Create;
parser.StrictDelimiter := True;
parser.Delimiter := ';';
for i := 0 to count - 1 do begin
parser.DelimitedText := strings[i];
Memo1.Lines.AddStrings(parser);
Memo1.Lines.Add('');
end;
finally
parser.free
end;
finally
free;
end;
Para leer un CSV relativamente simple te puede servir, si por el contrario las cadenas del CSV contienen saltos de linea o cosas mas complejas, entonces este método se queda corto y puede llegar a no ser valido