Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 164

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
У меня возникла проблева выгрузки строк из FileListBox в DBGrid чтобы соответствовали строки а то у меня получилось выгрузить только в одну стору DBGrid/

Приложение:
  1. procedure TForm1.Button4Click(Sender: TObject);
  2. var F: TextFile; S: String;
  3. begin
  4. ADOTable1.Edit;
  5. AssignFile(F,'C:test.txt');
  6. Reset(F);
  7. while not EOF(F) do
  8. begin
  9. ReadLn(F,S);
  10. ADOTable1.FieldByName('Files').AsString:= FileListBox1.Items.Text;
  11. end;
  12. CloseFile(F);
  13. end;


demyan Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: demyan (статус: Посетитель)
Вопрос отправлен: 9 сентября 2009, 14:22
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, demyan!
если надо добавлять строки, то код должен быть такой

begin
AssignFile(F,'C:\test.txt');
Reset(F);
while not EOF(F) do
begin
  ReadLn(F,S);
  ADOTable1.Insert; //ой, или Append? давно не использовал.
  ADOTable1.FieldByName('Files').AsString:= FileListBox1.Items.Text;
  ADOTable1.Post;
end;
CloseFile(F);
end;
если же надо "перезаписать данные", при условии, что записей в таблице достаточно, то где то так
begin
AssignFile(F,'C:\test.txt');
Reset(F);
while not EOF(F) do
begin
  ReadLn(F,S);
  ADOTable1.Edit; 
  ADOTable1.FieldByName('Files').AsString:= FileListBox1.Items.Text;
  ADOTable1.Post;
  ADOTable1.Next; //или MoveNext;
end;
CloseFile(F);
end;

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 9 сентября 2009, 14:38
Оценка за ответ: 3

Комментарий к оценке: Не то.
В FileListBox есть
Понееник.txt
Вторник.txt
Среда.txt
Так вот мне нужно чтобы эти строки записались в таблицу такимиже строками а у тебя получасется все в одну строчку
Понееник.txt,Вторник.txt,Среда.txt
Проверь сам.

Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 9 сентября 2009, 16:10; участников в обсуждении: 4.
Вадим К

Вадим К (статус: Академик), 9 сентября 2009, 14:34 [#1]:

в грид выгрузить данные нельзя. грид - это только средство отображения.
Галочка "подтверждения прочтения" - вселенское зло.
Тов. Женька

Тов. Женька (статус: 3-ий класс), 9 сентября 2009, 14:41 [#2]:

Используйте Append (для добавления записи в конец) и Post (для "закрепления").
min@y™

min@y™ (статус: Доктор наук), 9 сентября 2009, 14:42 [#3]:

Чота не пойму, зачем нужно чтение строк из файла C:\test.txt?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 9 сентября 2009, 14:43 [#4]:

то min@y™
так. банальный импорт:)
Галочка "подтверждения прочтения" - вселенское зло.
demyan

demyan (статус: Посетитель), 9 сентября 2009, 16:01 [#5]:

Я имел ввиду что строки FileListBox допустим
Понедельник
Вторник
Среда
Четверг
и т.д.
Мне нужно чтобы эти строки были записаны в поле таблицы Files в таком же порядке
Понедельник
Вторник
Среда
Четверг
и т.д.
а не в одну строку Понедельник, Вторник, Среда, Четверг, и т.д..
Демьян
Вадим К

Вадим К (статус: Академик), 9 сентября 2009, 16:10 [#6]:

стоп, так в исходном коде были глупости. если просто с листбокса, то тогда так
begin
AssignFile(F,'C:\test.txt');
Reset(F);
while not EOF(F) do
begin
  ReadLn(F,S);
  ADOTable1.Insert; //ой, или Append? давно не использовал.
  ADOTable1.FieldByName('Files').AsString:= s;
  ADOTable1.Post;
end;
CloseFile(F)
но только тогда зачем лисбокс. либо напрямую с листбокса
var i:integer;
begin
for i := 0 to FileListBox1.items.count - 1 d0
begin
  ADOTable1.Insert; //ой, или Append? давно не использовал.
  ADOTable1.FieldByName('Files').AsString:= FileListBox1.items[i];
  ADOTable1.Post;
end;
А вот сумарно и файл и листбокс - я не знаю.
А вот будет ли порядок совпадать с тем, что есть в таблице - никто не гарантирует при таком подходе. Если таблица не отсортирована, то говорить о порядке записей нельзя. Это базовые понятия теории реляционных БД.
P.S. на форуме принято употреблять "Вы"
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 2 июня 2023, 19:26
Выполнено за 0.03 сек.
Рейтинг@Mail.ru