もちろんできます。
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;