Hier die Implementierung auf Basis von TStringList
Delphi-Quellcode:
// Neutralisierung Zeilenumbrüche innerhalb CSVZelle
try
FStrings.BeginUpdate;
FStrings.Capacity := j1.Count;
i7 := j1.Count-1;
i6 := -1;
While (i6<i7)
do
begin
// Loop
Inc(i6);
s4 := j1[i6];
If Odd(fctLocalCharCount(s4,c3))
then
begin
// Zeilenumbruch in Zelle erkannt, nächste Zeile(n) dazunehmen
if (i6<i7)
then
begin
Inc(i6);
s5 := j1[i6];
s4 := s4 + #13#10 + s5;
// eventuell weitere Zeilen
While Not(Odd(fctLocalCharCount(s5,c3)))
and (i6<i7)
do
begin
Inc(i6);
s5 := j1[i6];
s4 := s4 + #13#10 + s5;
end;
end
else
begin
raise Exception.Create('
CSV Parser Fehler in Zeile '+IntToStr(i6));
end;
end;
// Datenzeile in Pool speichern
FStrings.Add(s4);
end;
finally
FStrings.EndUpdate;
end;