Сергей ПАРИЖ СКИЙ
Сейчас мы напишем программу, которая будет считывать информацию из базы, а потом обрабатывать
считанные данные. Д ля примера я решил написать справочник для меломана. В базе будут находиться
списки музыкальных групп и исполнителей, всех альбомов и всех песен из этих альбомов. Пользователь
может, например, проверить наличие песни в каком-либо альбоме, посмотреть все альбомы любой
группы или убедиться в самом ее наличии — и, конечно же, самостоятельно пополнить базу. Наш
верный
Ое/рЫ
поможет все это красиво организовать.
%
Оформляем лроерамму о заполняем базу
орм о должна выглядеть примерно кок но рисунке 1. Все
эти элементы находятся но вкладке Standard: три
labet о,
три
edit'о,
один
memo
и один
button.
С пр е о б р азо ва-
нием этих ком понентов у вое проблем возникнуть не
должно, изменять придется только свойство
Caption, Text и Font.
Для
memo 1
мож но поставить свойству R e a d o n ly зночение
true,
чтобы пользователь не м ог случайно удолить полученную ин-
ф ормацию. Токже для
memo 1
понадобится прокрутка, для. это-
го свойство
s c r o llB a r s
измените на
s s V e r t ic a l.
*
М ож ете по вкусу оф орм ить програм м у и добавить какие-
ли бо м елочи — мы но этом зостревать не будем.
Теперь давойте заполним наш у бозу данными про группы, их
альбомы и песни. Создайте файл 123.ini в том же катологе, где
ноходится вош а программа. В нем будет три раздела:
group, al-
bum
и
song —
все они заключены в кводратные скобки. Раздел
заканчивается, когдо начинается следующий или когда подходит
конец файла. Чтобы не путать вое фикциями вроде «rpynnoN el»
и «Первый альбом Группы№ 1», я для примеро взял две реаль-
ные группы. Первая группа:
Linkin park-,
альбомы:
Meteora, Hy-
brid theory.
Вторая группа:
Korn;
альбомы:
Issues, life is peachy.
А вот в том что косается песен, я думаю , лучш е сделоть
для всех ольбом ов что-то вроде s o n g l, song2, song3.
..
Запись будет иметь такой синтаксис:
[g r o u p ]
l i n k i n p a r k = l i n k i n p a r k
k o rn = k o rn
[a lb u m ]
l i n k i n p a r k l= m e te o r a
l i n k i n p a r k 2 = h y b r id t h e o r y
k o r n l= is s u e s
k o r n 2 = l i f e i s p e a c h y
[s o n g ]
is s u e s l= s o n g l
is s u e s 2 = song2
is s u e s 3 = song3
l i f e i s p e a c h y l= s o n g l
l i f e i s p e a c h y 2= song2
h y b r i d t h e o r y l= s o n g l
h y b r i d t h e o ry 2 = song2
m e te o r a l= s o n g l
m e te o ra 2 = song2
m e te o ra 3 = song3
Д ум аю , здесь все понятно: чтобы р азоб роться в зописи,
пользователю достоточно будет зопустить прогром м у и уз-
нать группу и хотя бы один ее ольбом. Ток кок н о ш а про-
гром м о будет уметь считывоть донны е врозброс, то пользо-
вателю не придется искоть, кудо вписоть н овую запись, — он
смож ет зописоть ее в л ю б о е м есто роздело, даж е розры воя
при этом альбом ы других групп.
Группа штп исполнитель.
Дв
нян ала?'
Группа или ист
as------------
І ink.tr» patk
Диск»
*1
Ж
'*
-.
Ш-
^Hybrid theory
Композиция
ї ’Ш і : ;
""З М ~
~
•. : •
1
о к H*wid
х"?
і
I
Посмотреть
Посмотреть
"
■■
Вся н аш о програм м а будет состоять из одного события —
ножотия но кнопку
Посмотреть.
С р о з у допиш ем в роздел
us-
es
модуль IniFiles и объявим все переменные, которы е будем
использовать в программ е:
Рис.1
I k
Рис.2
w in : T I n i F i l e ; / / д л я рабо ты с нашей б а зо й
d i r : s t r i n g ; / / п у т ь к базе
g r o u p , a lb u m , s o n g : a r r a y [ l .
.1 0 0 0 ] o f s t r i n g ; //
м ассивы д л я рабо ты с соотве тствую щ и м и записям и
y e s : b o o le a n ; //м ож ет при ним ать зн а ч е н и я t r u e и ли
f a l s e , б у д е т с лу ж и ть д л я п р о ве р ки н а л и ч и я тр уп п ы ,
альбом а и л и п е сн и
i : i n t e g e r ; / / с ч е тч и к д л я ц и к ла
П е р е д тем кок рассм атривоть все возм ож ны е ком би на-
ции ввода пользователем донных, надо определить, что б у-
дет происходить до проверки условий:
y e s := t r u e ; //очищаем п о ле о т прошлых п о и ск о в
m e m o l.C le a r ;
m em ol. L i n e s . C l e a r ;
m em ol. T e x t : = ' 0 ' ;
d i r : = G e t C u r r e n t D ir + ' \ 1 2 3 . i n i ' ; //зано си м в перем ен-
ную d i r полны й п у т ь к базе
W i n : = T I n i F i l e . C r e a t e ( d i r ) ; //подклю чаем нашу б а зу
д л я дальнейш ей работы с ней
Теперь довайте россм отрим возмож ные комбинации. Итак,
если пользователь ввел назвония группы, о остальны е поля
оставил пустыми:
i f ( e d i t l . T e x t o " ) and (e d it 2 .T e x t = " ) and ( e d it 3 .T e x t = " )
th e n b e g in
m e m o l.C le a r ;
m e m o l.L in e s .C le a r ; //пы таем ся н а й ти в пашем файле в
р а з д е л е [g r o u p ] т о , ч т о в в е де н о в e d i t 1
g r o u p [ 1 ] : = W in . R e a d s t r in g (
g r o u p ' , e d i t 1 . T e x t ,
g r o u p [ l ] ) ; //что бы не было критичны м р а з ли ч и е ма-
л е н ь к и х и больш их б у к в ни в б а з е , н и в в в е де н н о й п о л ь -
зо в а те ле м с т р о к е , мы в се переводим в нижний р е г и с т р .
Затем про вер яем , е с т ь л и в б а зе та к а я гр у п п а
i f A n siLo w e rC a se (g ro u p [ 1 ] ) < > A n s iL o w e rC a s e (e d itl.
T e x t )
th e n b e g in memo 1. L in e s . Add ( ' Нет тако й
группы
' ) ;
y e s : = fa ls e en d; / /очищаем массивы о т предыдущих данных
№ 29/304 19 июля-26 июля 2004
предыдущая страница 40 Мой Компьютер 2004 29 читать онлайн следующая страница 42 Мой Компьютер 2004 29 читать онлайн Домой Выключить/включить текст