I successfully read the CSV into TStrings using: procedure TForm2.FormCreate(Sender: TObject);
begin
SL := TStringList.Create;
SL.Delimiter := ','; // default, but ";" is used with some locales
SL.QuoteChar := '"'; // default
SL.StrictDelimiter := True; // required: strings are separated *only* by Delimiter
end;
20211605344,04/23/2021 - 09:26:42 am,4/28/2021,"Wood Drive, ENFIELD, CT","Calini, CBM",3223837, ENFIELD,Hartford,1,3,No as-built attached
20211300637,03/29/2021 - 11:48:51 am,4/1/2021,"Enfield Street, ENFIELD, CT",CBM,3223846, ENFIELD,Hartford,2,0,Job changed to aerial
Now I am trying to read each row into a dynamic array so I can assign each field.
procedure TForm2.Button2Click(Sender: TObject);
var
i:integer;
TicketNumber:string;
oneStr: TStringDynArray;
val:double;
begin
SL.LoadFromFile('D:\DelphiProjects\ImportCSV\PURA Phase 2 inspection selection.csv');
for I := 1 to SL.Count-1 do
begin
oneStr:= SplitString(SL[i], ',');
TicketNumber:= oneStr[0];
If TryStrToFloat(TicketNumber, val)then
memo2.Lines.Add('TicketNo: '+oneStr[0]+' '+'Job Date: '+oneStr[1]+' '+ 'Job Start: '+oneStr[2]+' '+'Address: '+oneStr[3]+' '+ 'Crew: '+oneStr[4]+' '+'Project: '+oneStr[5]+' '+'Town: '+oneStr[6]+' '+'County: '+oneStr[7]+' '+'Order: '+oneStr[8]+' '+'Count: '+oneStr[9]+' '+'Note: '+oneStr[10]);
end;
end;
What I am getting is: TicketNo: 20211605344 Job Date: 04/23/2021 - 09:26:42 am Job Start: 4/28/2021 Address: "Wood Drive Crew: ENFIELD Project: CT" Town: "Calini County: CBM" Order: 3223837 Count: ENFIELD Note: Hartford TicketNo: 20211300637 Job Date: 03/29/2021 - 11:48:51 am Job Start: 4/1/2021 Address: "Enfield Street Crew: ENFIELD Project: CT" Town: CBM County: 3223846 Order: ENFIELD Count: Hartford Note: 2
It is also breaking in the commas within the double quotes!! How can I prevent this? Thanks Delphi 11.2