Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.021 Beiträge
 
Delphi 12 Athens
 
#13

AW: CSV-Datei mit /sb

  Alt 26. Sep 2018, 21:19
bis jetzt hatte ich das auch immer so gemacht wie Uwe es gezeigt hat. Dafür habe ich mir die original System.Classes.pas in den entsprechenden Projektordner kopiert und diese Unit dann angepasst.
Das habe ich aber nicht so gemeint! Das würde ja bedeuten, daß sich dann alle TStringList im Projekt so verhalten. Eventuell muss man ja auch unterschiedliche CSV-Dateien mit anderen abstrusen Konventionen einlesen können. Für den konkreten Anwendungsfall hatte ich mir eher etwas wie dieses vorgestellt:
Delphi-Quellcode:
type
  TSoftBreakStringList = class(TStringList)
  protected
    procedure SetTextStr(const Value: string); override;
  end;

procedure TSoftBreakStringList.SetTextStr(const Value: string);
var
  P, Start: PChar;
  S: string;
begin
  if CompareStr(LineBreak, sLineBreak) <> 0 then begin
    inherited;
    Exit;
  end;

  BeginUpdate;
  try
    Clear;
    P := Pointer(Value);
    if P <> nil then begin
      while P^ <> #0 do begin
        Start := P;
        while not (P^ in [#0, #13]) do Inc(P);
        SetString(S, Start, P - Start);
        Add(S);
        if P^ = #13 then Inc(P);
        if P^ = #10 then Inc(P);
      end;
    end;
  finally
    EndUpdate;
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat