Transcript пр7

Робота з файлами
послідовний доступ
Повторення з курсу Інформатика 9 клас
Поясніть наступні поняття:
1. файл
2. файлова система як спосіб організації файлів
Фізичне розміщення даних на носіях інформації
Логично законченной порцией информации
для пользователя будет ФАЙЛ.
Файл-это
определенное
количество
информации
находящийся по
конкретному
адресу
что имеет
конкретное имя
Что сохраняется на
внешнем носителе
Файлы бывают пользовательские и служебные. В физическом
смысле файлами являются ярлыки, папки, служебные папки,
программы и т.д.
Що таке файли послідовного доступу?

Дані в текстових файлах можуть бути числами,
рядками, символами, датами чи мати інший простий
тип.
Текстовий файл з
даними
67
М
-12
сок
-1.3
С
Взаємодія між програмою
користувача, файловою системою і
носіями інформації
Дівчина –користувач, чай у стакані- файл, провідник – об'єкт
Робота з послідовними файлами VB.NET
всю головну роботу в VB роблять об'єкти. Уявімо і файл об'єктом та
інструменти для роботи над ним - теж об'єкти. Для роботи з
файлами будемо використовувати модель. NET System.IO.
Об'єктні
змінні
objStreamWriter
objStreamReader
Середовище
програмувания
VB.NET
модель .NET
System.IO
об'єкт
ФАЙЛ
Порядок роботи з текстовим файлом
1.
2.
3.
Створити об'єктну змінну для
читання або запису
Відкрити файл.
Виконати читання або запис.
Закрити файл.
Практична робота 7
Тема Побудова лінійних алгоритмів та їх
реалізація у вигляді програм з
використанням текстових файлів.
Мета засвоїти навички опрацювання
текстових файлів
Хід роботи
Постановка завдання
Розробити проект “читання і запис”,
перевірити його працездатність і
зробити висновок з практичної роботи
Проект «Читання і запис»
Постановка завдання
Створити проект для створення і роботи з
послідовними текстовими файлами.
Потрібно записати слово, число і дату в текстовий файл з ім'ям
proba.txt, розташований в будь-якій папці на якомусь диску
комп'ютера.
Код обробника до кнопки Запис з поясненнями
Якщо файл раніше не існував, то він створюється. Якщо файл
відкривається для запису, то магнітна голівка переміщується у
початок файлу. Якщо у файлі було раніше щось записано, то все
стирається. Відкривати можна одночасно декілька файлів.
Позначимо об'єктну змінну Z, яку використуємо для запису D: \proba.txt
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim Z As New System.IO.StreamWriter(“D:\proba.txt")
'Записуємо в файл 3 рядки:
Z.WriteLine("Азія")
Z.WriteLine(5.27)
Z.WriteLine(#3/29/2005 9:30:00 PM#)
Dim a As Integer = 10
Z.WriteLine(a + 2)
Z.Close()
End Sub
'Закриваємо файл
Код обробника до кнопки Читання з поясненнями
Нехай відомо, що першими трьома рядками в текстовому файлі з іменем
proba.txt є слово, число і дата. Потрібно прочитати їх звідти в оперативну
пам'ять комп'ютера.
Позначимо об'єктну змінну R , яку використуємо для читання з
файлу D: \proba.txt
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
Dim R As New System.IO.StreamReader("D: \proba.txt")
Dim a As String
Dim b As Double
Dim c As DateTime
a = R.ReadLine
b = R. ReadLine
c = R. ReadLine
R. Close()
TextBox1.Text = a
TextBox2.Text = Str(b)
TextBox3.Text = c
End Sub
Перетворення типів при читанні з текстового
файлу
При читанні з текстового файлу метод ReadLine розглядає кожну
рядок файлу тобто просто як звичайну рядок ( тип String ) , а при
присвоєнні цього рядка змінною величиною VB намагається
перетворити її до типу цієї змінної .
При виконанні оператора Дата = Чтеніе.ReadLine VB намагається
перетворити рядок 29.03.2005 21:30:00 Типу DateTime .
Оскільки цей рядок файлу являє правильну запис дати ,
присвоювання проходить успішно.
Якби ми натомість Dim Число As Double написали Dim Число As
Integer VB спробував перетворити рядок 5,27 в ціле число , у
нього б це вийшло і ми б побачили таку роздруківку : Азія ! 4
21:30:00 .
У разі невдачі перетворення VB видає помилку .
Задача 3
Якщо хочете дописати щось в його кінець, то потрібно для
створення об'єкта StreamWriter використовувати варіант
конструктора з двома параметрами:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim D As New System.IO.StreamWriter ("D: \ proba.txt", True)
D.WriteLine ("Європа")
D.WriteLine (999)
D.Close () '
End Sub
True означає, що дозапис включена, False - що виключена, а це означає,
що запис буде вестися спочатку, стираючи все, що було записано у файлі
раніше.
Задача 4*
Потрібно прочитати всі рядки файлу, а скільки рядків у файлі ви
не знаєте.
Можна було наказати: «Читай, поки в файлі ще є інформація». І такий наказ
є. У його основі лежить метод Peek (який в даному контексті можна
перекласти, як «спробуй»). При його виконанні зчитує голівка просувається
на 1 символ вперед, зчитує його, але не залишається там, як при виконанні
методів ReadLine і WriteLine, а повертається назад. Якщо ж зчитувати було
нічого, тобто файл скінчився, метод Peek повертає число -1.
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button7.Click
Dim Читання As New System.IO.StreamReader(" D:\proba.txt ")
Dim s As String
Do While Читання.Peek() <> -1
s = Читання.ReadLine
Debug.WriteLine(s)
Loop
Читання.Close()
End Sub
Вчимося читати з файлів,
створених в Блокноті