procedure TMainForm.SaveToCSV(const Name: TFileName; const Delim: string);
 var
   f: Textfile;
   s: string;
   i: Integer;
 begin
   AssignFile(f, Name);
   FileMode := fmOpenWrite;
   Rewrite(f);
   ADOQuery1.First;
   s := '';
   for i := 0 to ADOQuery1.FieldCount-1 do
   begin
     if s <> '' then
       s := s + Delim;
     s := s + ADOQuery1.Fields[i].FieldName;
   end;
   WriteLn(f, s);
   while not ADOQuery1.Eof do
   begin
     s := '';
     for i := 0 to ADOQuery1.FieldCount-1 do
     begin
       if s <> '' then
         s := s + Delim;
       s := s + StringReplace(ADOQuery1.Fields[i].AsString, sLineBreak, '|', [rfReplaceAll]);
     end;
     WriteLn(f, s);
     ADOQuery1.Next;
   end;
   CloseFile(f);
 end;  |