Студопедия

КАТЕГОРИИ:


Архитектура-(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.1. Результат роботи процедури “Обчислити_Click Рисунок 7.2. Результат роботи процедури “Показати_ Click”

 

7.3. ОБРОБКА ФАЙЛОВИХ СТРУКТУР ДАНИХ З

ДОВІЛЬНИМ ДОСТУПОМ

<== предыдущая лекция | следующая лекция ==>
Запис у файл | Запис у файл. Відкриття файлу з довільним доступом
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 311; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.