Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
AceMarR
0 / 0 / 1
Регистрация: 11.09.2010
Сообщений: 21
#1

Извлечение данных из TList - C++ Builder

12.09.2010, 08:32. Просмотров 1760. Ответов 8
Метки нет (Все метки)

Доброго времени суток.

http://www.cyberforum.ru/cpp-builder/thread1926016.html
Есть проблема: Имеется набор данных (DataSet), из которого нужно получить все значения одной из колонок (содержащую названия). Вроде бы нашел функцию
C++
1
2
3
TList *spisok = new TList;
String Filter;
DBGrid1->DataSource->DataSet->GetFieldList(spisok, Names);
но теперь нужно как-то получить из spisok все эти элементы как строки.

Не подскажет ли кто решение/чего нибудь почитать по TList?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2010, 08:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Извлечение данных из TList (C++ Builder):

Извлечение данных из внешнего приложения
как в мою программу можно копировать данные из внешней? значение нужно извлечь...

Передача TList по сокету
Здравствуйте. У меня вопрос, можно более грамотно передать данные с TList с...

TList vs. std::vector
Если кто-то знает, то подскажите, пожалуйста, в чем имеются принципиальные...

Списки указателей TList
Здравсвуйте программисты! Подскажите пожалуйста,в чём проблемма в этом коде,...

Удаление из ОЗУ элементов списка TList
В программе имеется список из объектов собственного класса. В процессе работы с...

8
Lord_Voodoo
Супер-модератор
8607 / 2228 / 133
Регистрация: 07.03.2007
Сообщений: 10,802
Завершенные тесты: 1
12.09.2010, 09:35 #2
AceMarR, а f1 - на помогает?
C++
1
2
3
for(int i = 0; i < List->Count;i++){
  ShowMessage(List->Items[i]);
}
0
AceMarR
0 / 0 / 1
Регистрация: 11.09.2010
Сообщений: 21
12.09.2010, 10:45  [ТС] #3
Периодически. Благодарю, сейчас попробую

Увы, не работает... Все те же лица: "Type mismatch in parameter Msg, (wanted 'const AnsiString', 'got void*')
Похоже, возвращается адрес вместо значения?..
0
Lord_Voodoo
Супер-модератор
8607 / 2228 / 133
Регистрация: 07.03.2007
Сообщений: 10,802
Завершенные тесты: 1
12.09.2010, 10:47 #4
AceMarR, покажи код для начала
0
AceMarR
0 / 0 / 1
Регистрация: 11.09.2010
Сообщений: 21
12.09.2010, 10:55  [ТС] #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void __fastcall TForm1::Button4Click(TObject *Sender)
{ String Filter;
SQL1=ComboBox1->ItemIndex+1;
SQL2=ComboBox2->ItemIndex+1;
Filter="Company like " +IntToStr(SQL2);
Filter=Filter+" AND Region like " +IntToStr(SQL1);
ADODataSet1->Filter=Filter;
ADODataSet1->Filtered=true;
 
TList* spisok;
spisok = new TList;
 
Edit1->Text=Filter;
Filter="AZSname";
DBGrid1->DataSource->DataSet->GetFieldList(spisok,Filter);
 
for(int i = 0; i < spisok->Count;i++){
  ShowMessage(spisok->Items[i]);
0
Lord_Voodoo
Супер-модератор
8607 / 2228 / 133
Регистрация: 07.03.2007
Сообщений: 10,802
Завершенные тесты: 1
12.09.2010, 11:12 #6
AceMarR, слушай, а зачем тебе вообще этот метод? если данные про структуру хранятся в свойстве Fields...

а еще попробуй:
C++
1
2
3
4
5
  TList* lst = new TList;
  Table1->Open();
  Table1->GetFieldList(lst, "CASH_NUM;IS_DEL;");
  for(int i = 0;i < lst->Count;i++) ShowMessage(((TField*)lst->Items[i])->FullName);
  Table1->Close();
0
AceMarR
0 / 0 / 1
Регистрация: 11.09.2010
Сообщений: 21
12.09.2010, 11:20  [ТС] #7
Вообще мне нужно было извлечь содержимое отфильтрованных ячеек в столбце "Имена", чтобы потом их ставить в другой компонент.
0
Lord_Voodoo
Супер-модератор
8607 / 2228 / 133
Регистрация: 07.03.2007
Сообщений: 10,802
Завершенные тесты: 1
12.09.2010, 11:33 #8
AceMarR, тогда вам всего лишь нужен FieldByName и цикл while (!dataset->Eof)
1
AceMarR
0 / 0 / 1
Регистрация: 11.09.2010
Сообщений: 21
12.09.2010, 11:48  [ТС] #9
Большое спасибо, получилось. Использовал
C++
1
2
3
4
while (!DBGrid1->DataSource->DataSet->Eof){
Filter=Form1->DBGrid1->DataSource->DataSet->FieldByName("AZSname")->AsString;
ComboBox3->Items->Add(Filter);
Form1->DBGrid1->DataSource->DataSet->Next();}
Все гениальное просто)

Еще раз спасибо.
0
12.09.2010, 11:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2010, 11:48
Привет! Вот еще темы с решениями:

Создание списка объектов через TList
Привет. В документации к Delphi нашел вот такую строчку: List :=...

InterBase извлечение данных
Здравствуйте. Делаю небольшой клиент для работы с InterBase на си билдере....

Вывод данных из списка TList в редактор Memo
Необходимо написать процедуру для вывода данных из списка TList в редактор...

Извлечение данных с сайта и загрузка этих данных в эксель
Всем доброго суток. Вопрос такого плана. Есть подраздел на сайте. В качестве...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru