Возможны два варианта исправления:
1) Вместо знака + между каждой строкой просто используйте вместо.Это позволит Writeln () выполнять конкатенацию текста.
Writeln(F, '"',ACtion,'","', Ini.ReadString('IP_ITS','BAccount','TEST'),'","',
FieldByName('PICKCITY').AsString,'","',FieldByName('PICKST').AsString,'","',
FieldByName('DROPCITY').AsString,'","',FieldByName('DROPST').AsString,'","',
FieldByName('TOT_MILES').AsString,'","',FloatToStr(AWeight),","',
FieldByName('LENGTH').AsString,'","',FloatToStr(AStops),
'","',''{grosspay},'","',FieldByName('PICK_DATE').AsString,
'","',FieldByName('PICK_TIME').AsString,'","',FieldByName('DROP_DATE').AsString,
'","',FieldByName('DROP_TIME').AsString,'","',AEquip,
'","","',ALTL,'"' , ',"","',
'","1","',Ini.ReadString('IP_ITS','BComp','BAccount'),FieldByName('PRO_NO').AsString,
'","","","","",""');
2) Использовать Format (), а затем открытый массив параметров - это мой предпочтительный способ, потому что его также будет проще исправить / поддерживать
Writeln(F, format('"%s","%s","%s","%s","%s","%s","%s", ....
[ACtion,Ini.ReadString('IP_ITS','BAccount','TEST'),FieldByName('PICKCITY').AsString, ..... ]));
И во всех случаях убедитесь, что вы установили буфер записи какого-либо размера и используете {$ I -}:
procedure TClassData.SaveToFile(const FileName: TFileName);
var F: system.Text;
buf: array[word] of byte;
begin
{$I-}
assign(F,FileName);
system.SetTextBuf(F,buf);
rewrite(F);
if ioresult=0 then
begin
writeln(F,...
...