Drum auch TStringList ... die macht das Trennen der Zeilen (#10, #13 oder #13#10), aber es geht auch ReadLn oder eben z.B. ein PosEx(#13#10).
Und dann nochmal eine weitere TStringList.DelimitedText für das Trennen am "Komma", wofür man auch jede beliebige andere SplitString-Funktion nehmen kann,
So man muß sich um fast nichts kümmern und ist alles schon von Haus aus im Delphi vorhanden.
ReadAllLines erzeugt ein TArray<string> mit allen Zeilen (wie die erste StringList)
Bei diesem Code muß man aber aufpassen, den wenn in irgendeiner Zeile nicht 2 Spalten, also mindestens 1 Delimiter vorkommt, dann knallt es, wenn man so ungeprüft auf das Array zugreift.
Delphi-Quellcode:
for var Values in TFile.ReadAllLines('C:\irgendwo\file.csv') do
MacheWasMitDerZweitenSpalte(Values.Split([#9])[1]);
Man könnte das ganze Problem sogar mit einem RegEx lösen, also irgendwie so
Delphi-Quellcode:
for var Match in TRegEx.Matches(TFile.ReadAllText('C:\file.csv'), '^[^\t]*\t([^\t]*)', [roMultiLine]) do
DoWithSecondValue(Match.Groups[1]); // Match.Value