Ver Mensaje Individual
  #6  
Antiguo 19-03-2020
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
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
    // lee los datos del fichero.
    // se podria utilizar cualquier otra metodo que lea linea  a linea
    LoadFromFile('c:\tmp\test_csv.csv');
    try
      parser := TStringList.Create;
      parser.StrictDelimiter := True;
      parser.Delimiter := ';';
      // recorre cada linea del fichero y extrae el valor de los campos
      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
Responder Con Cita