program project1;
{$mode objfpc}{$H+}
uses
Classes, Types, SysUtils;
procedure FillArray(out anArray: TStringDynArray; const aCSVFilename: String; aColumn: Byte);
var
sl: TStringList;
csvF: TextFile;
s: String;
begin
if not FileExists(aCSVFilename) then
begin
WriteLn('Cannot find ',aCSVFilename);
Exit;
end;
SetLength(anArray, 0);
sl := TStringList.Create;
try
sl.Delimiter := ',';
AssignFile(csvF, aCSVFilename);
Reset(csvF);
try
while not EOF(csvF) do
begin
ReadLn(csvF, s);
WriteLn(s);
sl.CommaText := s;
if aColumn < sl.Count then
begin
SetLength(anArray, Length(anArray)+1);
anArray[High(anArray)] := sl[aColumn-1];
end;
end;
finally
CloseFile(csvF);
end;
finally
sl.Free;
end;
end;
var
arr: TStringDynArray = Nil;
s: String;
begin
FillArray(arr, 'text.csv', 3);
for s in arr do
WriteLn(s);
ReadLn;
end.