Конечно может.
Вам просто нужно выполнить работу для правильного вывода содержимого CSV (правильное цитирование, обработка встроенных кавычек и запятых и т. Д.). Вы можете легко записать вывод, используя TFileStream
, и получить данные, используя TQuery.Fields
и TQuery.FieldCount
правильно.
Я оставлю вам необычные цитаты из CSV и специальную обработку для вас. Это позаботится о легкой части:
var
Stream: TFileStream;
i: Integer;
OutLine: string;
sTemp: string;
begin
Stream := TFileStream.Create('C:\Data\YourFile.csv', fmCreate);
try
while not Query1.Eof do
begin
// You'll need to add your special handling here where OutLine is built
OutLine := '';
for i := 0 to Query.FieldCount - 1 do
begin
sTemp := Query.Fields[i].AsString;
// Special handling to sTemp here
OutLine := OutLine + sTemp + ',';
end;
// Remove final unnecessary ','
SetLength(OutLine, Length(OutLine) - 1);
// Write line to file
Stream.Write(OutLine[1], Length(OutLine) * SizeOf(Char));
// Write line ending
Stream.Write(sLineBreak, Length(sLineBreak));
Query1.Next;
end;
finally
Stream.Free; // Saves the file
end;
end;