КАТЕГОРИИ: Архитектура-(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, що має кілька різновидів: Input # – прочитує послідовність символів, записаних за допомогою оператора Write #; Line Input # – прочитує один рядок; Input$ – прочитує певну кількість символів. Перед читанням треба відкрити файл за допомогою оператора Open...For. Наприклад: Open "C:\Text.Txt" For Input As #1 Оператор Input має наступний синтаксис: Input #нф, <Список Змінних> нф – це ціле число, яке повинно збігатись з ідентифікатором відкритого для читання файлу; <Список_Змінних> – це записані через кому змінні. В кожному текстовому рядку файла кількість та тип змінних повинно збігатись з кількістю та типом значень в <Списку Значень> оператора Write. Оператор Line Input має наступний синтаксис: Line Input # нф, <3мінна> Змінна – змінна типу String або Variant. Результатом роботи оператора Line Input є присвоєння <3мінній> значення всього текстового рядка файла. Читання із текстового файла виконується звичайно циклічно за допомогою оператора циклу з умовою Do While...Loop або Do Until...Loop. Умовою закінчення циклу є спроба прочитати дані після читання останнього текстового рядка. Ця спроба приводиіь до того, що після досягнення кінця файла значення функції EOF(нф) буде True. Функція Input$ – це функція двох аргументів: Input$(Кількість_Символів, нф) Перший її аргумент – це кількість символів, які треба прочитати із вхідного файла. Другий аргумент – ідентифікатор файла, відкритого для читання.
Повертаєме значення – прочитаний текст в вигляді символьного рядка. Цю функцію використовують для одночасного читання всього текстового файла та розміщення його в текстовому полі екранної форми. Для цього необхідно визначити довжину файла в байтах за допомогою функції LOF(нф). Наприклад, для читання всієї інформації з файла можна запропонувати один з двох варіантів: Варіант 1 Do Until EOF (1) Line Input #1, String Text= Text & String Loop Варіант 2 Text=Input$(LOF(1),1) Close #1 Обидва варіанти приводять до однакового результату. Приклад створення і використання файла з послідовним доступом. Продавцям необхідно зберегти відомості про продані товари, наприклад, в цілях обліку та для підбиття підсумків в кінці дня. Використаємо для рішення цієї задачі файл з послідовним доступом. Розмістимо на Формі 1, яка використовувалась в додатку «Покупки» ще три командні кнопки, яким дамо імена Записати, Доповнити, Показати та змінимо відповідно написи на них. Щигликам на цих кнопках ставимо їм в відповідність процедури Записати_Click(), Доповнити_Click, Показати _Click. Відображати вміст файлу з записами можна було б на окрему форму, додану з цією ціллю до проекту, але якщо записів багато, то вони можуть на ній не розміститись. Тому повний список проданого товару будем виводити в Список4, в якому при потребі виникне смуга прокручування. Private Sub Обчислити_Click() Dim Код As Integer, Ціна As Currency, S As Single, i As Integer S=0: ‘ Загальна вартість i=0 ‘ номер покупки Do While MsgBox(“Будуть ще покупки?”,vbQuestion+_ vbYesNo, “Покупки”)=vbYes i=i+1 Код=Val(InputBox(“Введіть ціну”, i & “ –го товару”)) Ціна=CCur(InputBox(“Введіть ціну”, i & “ –го товару”)) Кількість=Val(InputBox(“Введіть ціну”, i & “ –го товару”)) Список1. AddItem Код Список2. AddItem Ціна Список3. AddItem Кількість S=S+Ціна*Кількість Loop MsgBox “Вартість всіх покупок “ & Format(S, “0.00”) & “Грн.” End Sub
Private Sub Записати_Click() Open "D:\Продажі.txt" For Output As #1
For i = 0 To Список1.ListCount - 1 Write #1, Список1.List(i), Список2.List(i), Список3.List(i) Next i Close #1 End Sub
Private Sub Додати_Click() Open "D:\Продажі.txt" For Append As #1 For i = 0 To Список1.ListCount - 1 Write #1, Список1.List(i), Список2.List(i), Список3.List(i) Next i Close #1 End Sub
Private Sub Показати_Click() Dim Код As String * 4, Ціна As String * 15 Dim Кількість As String * 15 Open "D:\Продажі.txt" For Input As #1 S = 0 Do While Not EOF(1) Input #1, Код, Ціна, Кількість Список4.AddItem Код & " " & Ціна & " " & Кількість S = S +Val(Ціна) *Val(Кількість) Loop Close #1 Список4.AddItem "" Список4.AddItem "" Список4.AddItem "Всього на " & S & " Грн" End Sub
Для того, щоб змінні, які відображуються в списку 4 мали однакову довжину, що необхідно для вирівнювання інформації в стовпчиках при її відображені, ми використали оператор Dim Ім’я As String*N. Він вказує, що VB повинен створити рядкову змінну фіксованої довжини (довжиною N символів). На рисунках 7.1 та 7.2 відображені вікна з результатами роботи додатка.
7.3. ОБРОБКА ФАЙЛОВИХ СТРУКТУР ДАНИХ З ДОВІЛЬНИМ ДОСТУПОМ
Дата добавления: 2014-01-04; Просмотров: 319; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |