КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Файли з довільним доступом
Вправи Питання для роздумів Послідовний (текстовий) файл, текстовий формат, дескриптор файлу, текстовий рядок, відкриття файлу, закриття файлу, запис у файл, читання з файлу, функції Input, EOF і LOF.
Дотепер ми з Вами мали справу тільки з такими даними і такими змінними, котрі мають один визначений тип (навіть коли дані групуються в одномірні і багатомірні масиви, у всіх цих даних повинен бути один тип. Зараз ми переходимо до розгляду більш високого рівня представлення даних — до файлів з довільним доступом і базам даних. І перше, з чим Вам необхідно буде познайомитися, — це зі структурою даних, що у них використовується. Вона називається користувацьким типом даних. Головна відмінність цієї структури даних від розглянутих раніше полягає в тому, що вона містить компоненти (За визначенням, структура — це деяка сутність, що складається із взаємозалежних частин, що називаються компонентами структури. (А поняття сутності ми не визначаємо — це так зване початкове поняття.)) (окремі дані), що можуть мати різні типи! У середовищі програмістів структуру даних, що ми називаємо користувацьким типом даних, прийнято також називати записом (англ. record), a компоненти цієї структури — полями запису (англ. fields). Нехай запис складається з n полів (n — ціле число). Кожне поле запису має порядковий номер — від 1 до п. Будемо називати поле, що має номер i (i = 1,..., n), і-м полем запису. А тепер визначимо важливе поняття, з яким тісно зв'язане поняття запису, — це база даних. База даних — це множина наборів однакових записів. Під однаковістю ми розуміємо те, що всі записи одного набору складаються з однакової кількості полів та i -і поля всіх записів мають однаковий тип і розмір — довжину в символах. Набір однакових записів, що відносяться до визначеної теми, називають таблицею бази даних. Така назва не випадкова. Дійсно, цей набір записів легко представити у вигляді рядків таблиці, у якої n стовпців, а і -й стовпець відповідає i -му полю всіх записів. Приклад 4.6. База даних містить всього одну таблицю - відомості про студентів вашого факультету. Кожен рядок цієї таблиці являє собою впорядкований набір наступних значень:
Таким чином, таблиця має 6 стовпців. Допустимо, на Вашому факультеті 800 студентів. Це означає, що Ваша таблиця буде складатися з 800 рядків (записів), у яких буде міститися 4800 значень. Кожен рядок складається з 94 символів — виходить, усього в таблиці 75200 символів! У загальному випадку база даних може містити не одну, а багато різних таблиць. Ці таблиці найчастіше тісно зв'язані між собою — у них містяться стовпці з однаковими назвами і з однаковими даними. Зберігаються такі складні бази даних в особливих файлах — файлах баз даних. Про них ми докладно розповімо в гл. 5. А зараз обмежимося порівняно простим випадком, коли база даних містить всього одну таблицю. Таблиці, подібні до тієї, що приводилася в прикладі 4.6, зручно зберігати у вигляді файлів, що називаються файлами довільного доступу. Головна відмінність файлів довільного доступу від розглянутих раніше файлів з послідовним доступом (текстових файлів) полягає в наступному: усі записи цих файлів мають постійну довжину і порядковий номер. Це дозволяє поводитися з ними на зразок того, як веде себе плейер із записами на компакт-диску: відразу, без послідовного їхнього перегляду, знаходити потрібний Вам запис і щось з ним робити. Але для записів у таких файлах не підходять ті типи даних, з якими Ви вже встигли познайомитися. Розглянемо новий тип даних, що застосовується у файлах довільного доступу. Він називається користувацьким типом даних. Користувацький тип даних проголошується в такий спосіб:
Замість ключового слова Private перед словом Type може бути записане ключове слово Public. (Нагадаємо, що якщо використовується слово Private, то оголошувана змінна локальна, а якщо Public — то вона глобальна.) Ім’яТипуДаних — це ім'я, що привласнюється обумовленому типу даних. Елемент 1,..., Елемент — це назви полів запису, для яких ми створюємо користувацький тип даних. ТипЕлементу 1,..., TunЕлементу N — це стандартні, відомі Вам типи даних, що будуть знаходитися в цих полях запису. Єдине обмеження — усі дані типу String повинні мати фіксовану довжину! Після визначення користувацького типу даних необхідно оголосити змінні, котрі будуть мати цей тип. Робиться це звичайним чином:
Приклад 4.7. Для таблиці бази даних із прикладу 4.6 можна визначити наступний користувацький тип даних:
А тепер вирішимо наступну задачу: оголосимо змінну Студент, що має користувацький тип ДаніПроСтудента, і знайдемо довжину запису, для будь-якого значення цієї змінної:
Наступною Вашою задачею буде вивчення операторів Visual Basic, що дозволяють створювати файли довільного доступу і працювати з ними. До них відносяться:
Відкриття файлу. Для відкриття файлу прямого доступу використовується оператор Open з наступним синтаксисом:
Ім’яФайлу і ДескрипторФайлу — визначаються так само, як в операторі Open для текстових файлів (див. попередній розділ). Але на відміну від текстових файлів тут не робиться розходження між файлами для запису і для читання: усі вони відкриваються в одному режимі, що визначається ключовим словом Random. Крім того, у даному випадку оператор Open містить ключове слово Len, слідом за яким вказується ДовжинаЗапису — ціле число. Воно повинне дорівнювати довжині змінної користувацького типу, що застосовується для збереження одного запису файлу. Закриття файлів. Для закриття файлів довільного доступу використовується оператор Close. Його синтаксис і логіка роботи нічим не відрізняються від синтаксису і логіки роботи оператора Close для закриття текстових файлів. 3апис у файлу. Для включення у файл довільного доступу нового запису застосовується оператор Put, що має наступний синтаксис:
ДескрипторФайлу — це ідентифікатор відкритого файлу прямого доступу, у якому міститься запис. НомерЗапису — це номер, що матиме запис, який поміщається у файл. Номером може бути тільки ціле додатне число. Ім’яЗмінної — це ім'я змінної користувацького типу, значенням якої є запис, що поміщається у файл. Читання з файлу. Для витягу запису з файлу довільного доступу застосовується оператор Get, що має такий синтаксис:
ДескрипторФайлу — це ідентифікатор відкритого файлу довільного доступу, з якого витягається запис. НомерЗапису — це номер запису, що витягається з файлу. Ім’яЗмінної — це ім'я змінної користувацького типу, значенням якої є запис, що витягається з файлу. Приклад 4.8. Приведемо програму додатка, за допомогою якого користувач спочатку заповнює 6 вікон списку даними про студентів із прикладу 4.7 (використовуючи системні вікна введення), після чого ці дані поміщаються у файл довільного доступу. Екранна форма додатка із заповненими списками представлена на мал. 4.4.
Усім вікнам списку ми привласнили те саме ім'я — List. При цьому вони перетворилися в масив об'єктів (у кожного списку з'явився індекс, значення якого знаходиться в межах від 0 до 5). Заповнення всіх 6 вікон списку починається після натиснення командної кнопки з написом Внести дані у списки. Процедура для цієї події представлена кодом 4.9.
Запис даних з вікон списків у файл прямого доступу з ім'ям Студенти.raf починається після натиснення командної кнопки з написом Перенести дані зі списків у файл. Процедуру для цієї події представляє код 4.10.
Оголошення користувацького типу ДанихПроСтудента з прикладу 4.7 було представлено раніше — див. код 4.7. Представлена програма заповнення масиву за допомогою вікон списку має істотний недолік. Якщо Ви помітите, що якісь дані, які вже занесені до списку, мають помилку, виправити цю помилку можна буде почавши вводити всі дані заново! В останньому розділі даної глави буде розглянутий спосіб вводу даних у списки, який не має цього недоліку (Цей спосіб допускає використання об'єктів ComboBox (замість об'єктів ListBox)). Прикладом використання файлу прямого доступу може служити програма, представлена кодом 4.11. З її допомогою користувач може ознайомитися зі списком дат народження студентів, відомості про які знаходяться у файлі з ім'ям Студенти.raf.
У програмі ми використовували нову для Вас функцію Trim. З її допомогою можна видалити зайві пробіли, з яких починається і якими закінчується рядок символів. Результат роботи цієї програми приведений на мал. 4.5.
На закінчення визначимо ще 3 оператора: перейменування, копіювання і знищення файлів. Ці оператори можна застосовувати як до текстових файлів, так і до файлів довільного доступу. Оператор перейменування файлу. Синтаксис цього оператора наступний:
СтареІм’я і НовеІм’я — це рядки, що визначають маршрут до файлу зі старим ім'ям і маршрут до цього ж файлу з новим ім'ям. Оператор копіювання файлу. Цей оператор має наступний синтаксис:
Ім’яФайлу і Ім’яФайлуКопії — це рядки, що визначають маршрут до файлу-оригіналу і маршрут до створюваної копії файлу-оригіналу. 0пepатоp знищення файлу. Синтаксис оператора такий:
Приклад використання цього оператора Ви можете знайти в коді 4.11. У приведеній програмі створений файл прямого доступу з ім'ям Студенти.raf (Для даного файлу ми придумали розширення raf, взявши перші букви словосполучення random-access file — файл із довільним доступом.) наприкінці її роботи знищується через непотрібність. Нові поняття: запис, поле запису, база даних, таблиця бази даних, користувацький тип даних, файл довільного доступу, функція Trim видалення зайвих пробілів, перейменування файлу, копіювання файлу, знищення файлу.
Дата добавления: 2014-12-23; Просмотров: 595; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |