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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2012, 16:47   #1
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию Перенести данные из txt в DBGrid

Здравствуйте. Есть текстовый файл. Необходимо данные из этого текстового файла перенести в DBGrid. Разделителем в текстовом файле выступает знак "|".
Пример:
Солнце|Трава
Зима|Лето
значит Солцце и Зима должны быть в первом столбце DBGrid, а Трава и Лето - во втором
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Старый 05.11.2012, 17:49   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Судя по вопросу, Вы не совсем четко представляете себе, что такое ДБГрид?

А вообще код примерно такой:

Код:
var F: textfile;
     s: string;
begin
  AssignFile(F,'text.txt');
  Reset(F);
  While not Eof(F) do begin
    ReadLn(F,s);
    if pos('|',s)<>0 then begin    
      Table1.Insert;
      Table1.FieldByName('Имя первого поля').AsString:=copy(s,1,pos('|',s)-1);
      Table1.FieldByName('Имя второго поля').AsString:=copy(s,pos('|',s)+1,length(s)-pos('|',s)+1);
      Table1.Post;
    end
    else if s<>'' then begin
      Table1.Insert;
      Table1.FieldByName('Имя первого поля').AsString:='';
      Table1.Post;
    end;
  end;
  CloseFile(F);
end;

Примечание: круто будет, если попадется строка типа '|||||||||' )))
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 05.11.2012 в 17:53.
Sciv вне форума Ответить с цитированием
Старый 05.11.2012, 17:58   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Можно с использованием AdoQuery и провайдера Jet.OLEDB. По ссылке пример строки соединения http://support.microsoft.com/kb/326548/ru
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.11.2012, 18:05   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а точно в DBGrid ? DBGird - это же контрол для отображения данных из БД (см. первые буквы в имени компонента: DB = DataBase). Может быть, Вам нужен другой компонент (например, StringGrid) ?

оп-с... опоздал я со своим ответом...

Последний раз редактировалось Serge_Bliznykov; 05.11.2012 в 18:08.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.11.2012, 18:31   #5
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию

Дело в том что у меня есть текстовые файлы в которых по 15000-20000 строк, такого типа как я привел выше. Я эти файлы импортирую в базу Access, а потом подключаю эту базу через ADOConnection. НУ и дальше работаю с помощью SQL запросов.
Но после импорта в базу Access она весит около 40 МБ. Вот мне и надо что то альтернативное, что бы меньше весом было (в текстовом формате именно то что надо).
Мне надо что бы можно было потом сделать автопоиск хотябы.
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Старый 05.11.2012, 20:38   #6
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Так Вас вроде бы уже разъяснили, нет? http://www.programmersforum.ru/showp...45&postcount=5
ReportCube вне форума Ответить с цитированием
Старый 06.11.2012, 11:13   #7
Delphi_developer
Пользователь
 
Регистрация: 19.09.2012
Сообщений: 21
По умолчанию

Вам я уже ответил вчера здесь http://www.cyberforum.ru/delphi-begi...ead689172.html. Если непонятно, то бросайте это дело!

Последний раз редактировалось Delphi_developer; 06.11.2012 в 11:16.
Delphi_developer вне форума Ответить с цитированием
Старый 21.02.2016, 20:02   #8
medved_program
Пользователь
 
Регистрация: 15.01.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Судя по вопросу, Вы не совсем четко представляете себе, что такое ДБГрид?

А вообще код примерно такой:

Код:
var F: textfile;
     s: string;
begin
  AssignFile(F,'text.txt');
  Reset(F);
  While not Eof(F) do begin
    ReadLn(F,s);
    if pos('|',s)<>0 then begin    
      Table1.Insert;
      Table1.FieldByName('Имя первого поля').AsString:=copy(s,1,pos('|',s)-1);
      Table1.FieldByName('Имя второго поля').AsString:=copy(s,pos('|',s)+1,length(s)-pos('|',s)+1);
      Table1.Post;
    end
    else if s<>'' then begin
      Table1.Insert;
      Table1.FieldByName('Имя первого поля').AsString:='';
      Table1.Post;
    end;
  end;
  CloseFile(F);
end;

Примечание: круто будет, если попадется строка типа '|||||||||' )))
Пытаюсь изменить ваш код, чтобы добавлять данные из файла в 5 столбцов, но заносится лишь первый, не могли бы поставить на путь истинный?
medved_program вне форума Ответить с цитированием
Старый 21.02.2016, 21:18   #9
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,881
По умолчанию

medved_program, лучше создать свою тему, чётко объяснить _свой_ вопрос в ней и привести Ваш код, а не уповать на телепатию форумчан по чужому коду 3+летней давности.
Из файла, как уже в теме упоминалось (что дбгрид по сути только для работы с бд), лучше читать в компонент стринггрид (вкладка компонент Advanced).
phomm вне форума Ответить с цитированием
Старый 21.02.2016, 22:17   #10
medved_program
Пользователь
 
Регистрация: 15.01.2015
Сообщений: 20
По умолчанию

она есть
http://www.programmersforum.ru/showthread.php?t=289587
medved_program вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенести данные из TString в TStringList . Сергей Л Общие вопросы Delphi 1 02.11.2011 11:14
Данные перенести из формы в FastReport. D.O.G Общие вопросы Delphi 1 02.11.2010 12:44
Помогите перенести из txt в xls max-tlt1 Microsoft Office Excel 3 08.01.2010 22:37
Перенести данные Belokuraya Microsoft Office Excel 6 10.08.2009 16:08
Выгрузка данные из DBGrid-а в txt Angel86rus Общие вопросы Delphi 2 24.07.2009 13:26