Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2014, 22:41   #1
Roman123654789
Пользователь
 
Регистрация: 20.04.2012
Сообщений: 35
По умолчанию Как экспортировать таблицу DBGrid в ТХТ файл?

Как экспортировать таблицу дбгрид в ТХТ файл? Данные берутся из ADOquery
Roman123654789 вне форума Ответить с цитированием
Старый 24.07.2014, 08:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
var s:string; st:TStringList;
...
st:=TStringList.Create;

with ADOQuery do begin
 first;
 while not eof do begin s:='';
  for i:=0 to FieldsCount-1 do s:=s+Fields[0].AsString+' ';
  st.append(s);
  next; 
 end;
 free;
end;

st.savetofile('file.txt');
st.free;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.07.2014, 09:12   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

кстати, старый добрый TextFile никто не отменял.
можно и так:
Код:
var f2 : TextFile;
  buf2 : array[1..32*1024] of byte;
  s    : String;
begin

  AssignFile(f2,'MyTableExport.txt');
  System.SetTextBuf(f2,buf2);  {<<<<<--- это не обязательно, выделение буфера под записываемые данные....}
  Rewrite(f2);

 ADOQuery1.First;
 while not ADOQuery1.Eof do begin 
    s:='';
    for i:=0 to ADOQuery1.FieldsCount-1 do s:=s+ADOQuery1.Fields[i].AsString+' ';
    WriteLn(f2, s);
    ADOQuery1.next; 
 end;
 CloseFile(f2);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.07.2014, 13:07   #4
Roman123654789
Пользователь
 
Регистрация: 20.04.2012
Сообщений: 35
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
кстати, старый добрый TextFile никто не отменял.
можно и так:
Код:
var f2 : TextFile;
  buf2 : array[1..32*1024] of byte;
  s    : String;
begin

  AssignFile(f2,'MyTableExport.txt');
  System.SetTextBuf(f2,buf2);  {<<<<<--- это не обязательно, выделение буфера под записываемые данные....}
  Rewrite(f2);

 ADOQuery1.First;
 while not ADOQuery1.Eof do begin 
    s:='';
    for i:=0 to ADOQuery1.FieldsCount-1 do s:=s+ADOQuery1.Fields[i].AsString+' ';
    WriteLn(f2, s);
    ADOQuery1.next; 
 end;
 CloseFile(f2);
данные сохраняются, но подскажите как таблицей сохранить, с названиями столбцов и данными в них.
Roman123654789 вне форума Ответить с цитированием
Старый 25.07.2014, 09:17   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
данные сохраняются, но подскажите как таблицей сохранить, с названиями столбцов и данными в них.
таблицей - это когда столбцы разделяются чем?! Выравненные пробелами?
А ширину столбца откуда брать?

Вы лучше приведите пример TXT файла (можно буквально на три строки и лучше приложите его к сообщению на форуме), который заполнен данными там, как Вы хотите, а мы вместе с Вами подумаем, как такой файл можно сформировать. ОК?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.07.2014, 21:46   #6
Roman123654789
Пользователь
 
Регистрация: 20.04.2012
Сообщений: 35
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
таблицей - это когда столбцы разделяются чем?! Выравненные пробелами?
А ширину столбца откуда брать?

Вы лучше приведите пример TXT файла (можно буквально на три строки и лучше приложите его к сообщению на форуме), который заполнен данными там, как Вы хотите, а мы вместе с Вами подумаем, как такой файл можно сформировать. ОК?
Примерно так
Вложения
Тип файла: txt Матеріали.txt (599 байт, 163 просмотров)
Roman123654789 вне форума Ответить с цитированием
Старый 25.07.2014, 22:04   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Вывод имен полей:
Код:
for i:=0 to ADOQuery1.FieldsCount-1 do Write(ADOQuery1.Fields[i].FieldName:30); writeln;
Вывод данных:
Код:
for i:=0 to ADOQuery1.FieldsCount-1 do Write(ADOQuery1.Fields[i].AsString:29,'|'); writeln;
Идея ясна?

P.S. Дай угадаю: Матричный принтер, которых должен распечатать тучу страниц и очень быстро. Угадал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как ваставить файл.тхт в массив Devolick Паскаль, Turbo Pascal, PascalABC.NET 2 14.01.2012 10:21
Как загрузить в DBGrid таблицу из Excel artemavd БД в Delphi 11 13.04.2011 09:41
Как экспортировать файл как юникод chugo Microsoft Office Access 5 28.01.2011 11:08
Написать программу, преобразующую файл АВС.ТХТ в файл 123.ТХТ [Паскаль] Djoker Помощь студентам 1 12.12.2010 19:45
Как настроить эксель, чтобы он открывал в виде таблицы тхт файл с разделителем в виде точки с запятой xhour Microsoft Office Excel 1 05.05.2009 14:17