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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2017, 06:53   #1
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию DBgrid в txt

Код:
       var i: Integer;
    FS: TFileStream;
    DataSet: TDataSet;
    FileName, Value: AnsiString;
begin
 FileName := 'Rec.txt';
 if FileExists(FileName)
 then begin
      FS := TFileStream.Create(FileName, fmOpenWrite);
      FS.Position := FS.Size;
      end
 else FS := TFileStream.Create(FileName, fmCreate);
 DataSet := DBGrid1.DataSource.DataSet;
 Value := '';
 for i := 0 to DataSet.Fields.Count - 1
 do if Value = ''
    then Value := DataSet.Fields[i].AsString
    else Value := Value + ';' + DataSet.Fields[i].AsString;
 Value := Value + #13#10;
 FS.Write(Value[1], Length(Value));
 FS.Free;
           end;
Данный код выгружает выделенную запись из Грида
как Выгрузить се в txt&&&

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 26.10.2017 в 09:39.
gribo4ek вне форума Ответить с цитированием
Старый 26.10.2017, 09:46   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

попробуйте так
Код:
 FileName := 'Rec.txt';
 if FileExists(FileName)
 then begin
      FS := TFileStream.Create(FileName, fmOpenWrite);
      FS.Position := FS.Size;
      end
 else FS := TFileStream.Create(FileName, fmCreate);
 DataSet := DBGrid1.DataSource.DataSet;
 DataSet.First;
 while Not DataSet.Eof do begin
   Value := '';
   for i := 0 to DataSet.Fields.Count - 1 do 
      if Value = ''
        then Value := DataSet.Fields[i].AsString
        else Value := Value + ';' + DataSet.Fields[i].AsString;
   Value := Value + #13#10;
   FS.Write(Value[1], Length(Value));
   DataSet.Next;
 end;

 FS.Free;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.10.2017, 10:51   #3
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Спасибо
gribo4ek вне форума Ответить с цитированием
Старый 26.10.2017, 10:53   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

1. Это dataset в txt, а не DBgrid в txt. Колонки грида могут отображать не все поля из датасета, да и порядок следования не обязательно такой же
2. Как потом разбирать этот txt (вообще-то scv), если в каком-то текстовом поле точка с запятой будет?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенести данные из txt в DBGrid demiancz Общие вопросы Delphi 9 21.02.2016 22:17
Переделавание кода на считывание из файла в файл output.txt input.txt !!! airesjke Помощь студентам 0 29.05.2013 14:07
Выгрузка данные из DBGrid-а в txt Angel86rus Общие вопросы Delphi 2 24.07.2009 13:26
DBGrid в TXT RIO БД в Delphi 3 15.06.2009 18:28
Как прочесть txt файл www.site.ru/info.txt BR17UY Работа с сетью в Delphi 1 16.04.2007 13:01