Программирование >>  Элементы языков с и с++ 

1 ... 112 113 114 [ 115 ] 116 117 118 ... 200


Как формировать список строк

На этапе разработки приложения можно сформировать так называемый отладочный список, который в дальнейшем (когда приложение будет эксплуатироваться) неудобно поддерживать в актуальном состоянии, т. к. требуется корректировка списка и перекомпиляция приложения. Но, тем не менее, для отладочных работ список надо сформировать. Это делается с помошью ре-дашра текста, окно которого открывается, если щелкнуть на кнопке с многоточием в поле свойства компонента items.

Д1Я производственных же нужд требуется создать функцию, которая бы за-Ф)жала текстовый файл в компонент (мы разбираем только случай, когда злементами ListBox являются текстовые строки), или воспользоваться возможностями данной среды разработки (что и рассмотрим для начала).

В качестве источника данных выберем базу данных MS Access, которая поставляется с современными операционными системами и поэтому не вызовет проблем при реальной эксплуатации. Для проведения эксперимента создадим ВД под названием Библиотека, в которой есть таблица Авторы. Вот к ней мы и подключимся, чтобы выдать в ListBox одну колонку этой таблицы (фамилии авторов).

Работа начинается с диалогового окна ListBox Tasks, которое открывается, если компонент ListBox активизировать (найти в его верхнем правом углу маленькую черную стрелку и нажать ее мышью). Далее ход подключения к ВД станет ясен из комментариев к рис. 11.52-11.61.

Но, как оказалось, сделано еще полдела: выборка из сформированного списка- это непростая задача. Дело в том, что формат сформированных строк отличается от формата string. Кроме того, при щелчке на такой строке она начинает вести себя неадекватно: перемещается в начало списка. Чтобы дол-гоне разбираться с ситуацией, которая связана с изучением дополнительных классов, оставим этот пример просто как иллюстрацию возможности под-пючения к БД и организации просмотра ее элементов.

Для нашей же задачи вернемся к первому способу: создадим функцию, которая станет загружать текстовые строки из обыкновенного текстового файла, подготовленного известным и простейшим инструментом - программой блокнот или программой Word. После создания такой программы применим ее для зафузки строк и попробуем вывести (по щелчку мыши на строке) отмеченную строку в компонент TextBox. Вид приложения в режиме дизайна



показан на рис. 11.62, текст приложения - в листинге 11.6. Результат работы приложения приведен на рис. 11.63.

Нажали на эту кнопку

)(>ц< >и *7

Нажали ,

на эту I Source

Строка 1 Стропа 2 Строка 3

I кнопку

ListBoH Tasks

121 Use data bound items Data Binding Mode Data Source [(none) DisplayMember [ VAje Member Г Selected Value [(nonel

Data Source Configuration Wizard


Choose a Data Source Type

where will the application get data from?


f < rev-.:u;- 1 Ne t > i I Finish J [ Cancel

Теперь надо нажать на эту кнопку

Откроется это окно, в котором надо выбрать этот элемент

Затем нажать эту кнопку

Рис. 11.52. Шаг 1 подключения к БД

Листинг 11.6

Фрагмент h-файла Forml.h

private:

/ <sumraary>

функция: загружает из файла текстовые строки в ListBox void LoadFtomFile(char *File, ListBox lb)



(рипоненты, создающие интерфейс между пользователем и приложением 349 I

char s[300]; ПЬЕ *fp; int i; i=0;

lb->Items->Clear () ;

if(! (fp=fopen (File, r )))

MessageBox::Show( Ошибка открытия файла , Приложение 54 , MessageBoxButtons::OK,MessageBoxIcon::Asterisk); return;

while (!feof(fp)) I

fgets(s,300,fp); String dd = gcnew String (s); /*этот способ конвертирования не удаляет последний управляющий символ, который надо удалить:*/

int j=dd->Length-l; dd=dd->Substring (О, j ); lb->Items->Add (dd); i++;

[ / Required designer variable. JI/ </з1Ш1гпагу>

[ Обработчики событий

private: System: :Void buttonl Click (System: zObject sender, [ System:: EventArgs e)

this->Close ();

private: System::Void listBoxl Click(System: :Object sender. System: :EventArgs e)



1 ... 112 113 114 [ 115 ] 116 117 118 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика