Разработка урока по теме Работа с текстовыми файлами в среде Visual Basic (11 класс)




«Работа с текстовыми файлами в среде Visual Basic»
Для хранения и обработки информации часто вместо базы данных удобнее использовать текстовые файлы. Самый простой тип – это текстовый файл произвольного формата последовательного доступа. Чтобы создать такой текстовый файл, можно просто воспользоваться любым текстовым редактором и разместить каждый элемент данных в отдельной строке.

I. Рассмотрим основные конструкции для работы с текстовыми файлами
1. Оператор открытия текстового файла для чтения информации:

Open “имя файла” for Input as #номер файла -где:
имя файла – имя созданного текстового файла;
номер файла – номер по порядку открытия файла.
В нашем случае: Open “ Text1.txt” for Input as #1

2. Оператор чтения из файла в текстовую переменную:

Line Input #1,имя переменной - считать всю строку с кавычками в текстовую переменную;
Input #1,имя переменной – считать всю строку без кавычек;
Функция Input (n ,#1) – считывает только n символов.
В нашем случае: Line Input #1, Stroka – где Stroka - текстовая переменная.

3. Добавление содержимого текстовой переменной в элемент управления списком:

List1.AddItem Stroka – где List1 элемент управления списком ListBox.

4. Оператор закрытия текстового файла: Close #1


5. Оператор открытия текстового файла для записи информации:
Существуют два режима:
- в режиме Append данные добавляются в существующий файл, а при его отсутствии создается новый: Open “имя файла” for Append as #1
- в режиме Output всегда создается новый файл, при этом содержимое старого файла затирается:
Open “имя файла” for Output as #1

6. Запись в файл осуществляется с помощью двух различных операторов:

Print # номер файла, выражение
Write # номер файла, выражение (оператор Write автоматически вставляет при вводе символы-разделители и символы-ограничители).
Например:
1). Print #1,”Иванов”,”Николай”
2). Write #1,”Иванов”,”Николай”







II. Создадим проект записи и считывания строки информации через текстовый файл
Установим на форме следующие элементы: TextBox (Text1), ListBox (List1), Command1 (), Command2 ()



Private Sub Command2_Click()
List1.Clear
Open "test.txt" For Input As #1
Do Until EOF(1)
n = n + 1
Line Input #1, a
List1.AddItem a
Loop
Close #1
End Sub












































Dim b, c, m, w As String * 10


Private Sub Command2_Click()
List1.Clear
Open "Text2.txt" For Output As #1
For i = 1 To 5
b = InputBox("Введите Фамилию")
c = InputBox("Введите имя")
d = InputBox("Введите год рождения")
Print #1, b, c, d
Next
Close #1

End Sub

Private Sub Command3_Click()
List1.Clear
Open "Text3.txt" For Append As #1
For i = 1 To 5
b = InputBox("Введите Фамилию")
c = InputBox("Введите имя")
d = InputBox("Введите год рождения")
Print #1, b, c, d
Next
Close #1
End Sub




Private Sub Command4_Click()
Form2.Show
End Sub

Private Sub Command5_Click()
End
End Sub

Private Sub Command6_Click()
Dim n As Integer
Dim m As String
m = InputBox("введи имя файла", "ввод")
Open m For Input As #1
n = 0
Do Until EOF(1)
n = n + 1
Input #1, w

Text1.Text = Text1.Text + w + vbCrLf

Loop
Close #1
Label5.Caption = n

End Sub

Private Sub Command7_Click()
List1.Clear
Open "Text4.txt" For Output As #1
Do While b <> "*"
b = InputBox("Введите Фамилию")
c = InputBox("Введите имя")
d = InputBox("Введите год рождения")
Print #1, b, c, d
Loop

Close #1
End Sub

Private Sub lesen_Click()
List1.Clear
m = InputBox("введи имя файла", "ввод")
Open m For Input As #1
Do Until EOF(1)
n = n + 1
Line Input #1, Stroka
List1.AddItem Stroka
Loop
Close #1
End Sub





Private Type Employes
Family As String * 10
Name As String * 5
Vozrast As Integer
End Type
Dim Fam(100), Im(100) As String
Dim Vozr(100) As Integer


Private Sub Command1_Click()
List1.Clear
Dim Stroka As Employes
Dim k As Integer

Open "список.txt" For Output As #1 Len = Len(Stroka)
For i = 1 To 7
Stroka.Family = InputBox("Введи фамилию")
Stroka.Name = InputBox("введи имя")
Stroka.Vozrast = InputBox("Введи возраст")


Print #1, Stroka.Family, Stroka.Name, Stroka.Vozrast
List1.AddItem Stroka.Family
Next i
Close #1
End Sub

Private Sub Command2_Click()
Dim Stroka As Employes
Dim k, v As Integer
Dim st As String * 10
List1.Clear
Open "список.txt" For Input As #1 Len = Len(Stroka)
st = InputBox("введи фамилию", "ввод")
For i = 1 To 7
Input #1, Stroka.Family
If Stroka.Family = st Then k = k + 1
List1.AddItem Stroka.Family
Next i
Close #1
Label2.Caption = k

End Sub



Private Sub Command3_Click()
Dim Stroka As Employes
Dim k, v As Integer
'Dim st As String * 10
List1.Clear
Open "список.txt" For Input As #1 Len = Len(Stroka)
'st = InputBox("введи фамилию", "ввод")
For i = 1 To 7
Input #1, Stroka.Name

Fam(i) = Stroka.Family
Im(i) = Stroka.Name
Vozr(i) = Stroka.Vozrast
Print Stroka.Family, Stroka.Name, Stroka.Vozrast
'If Stroka.Family = st Then k = k + 1
List1.AddItem Stroka.Family
Next i
Close #1

'Label2.Caption = k

End Sub

Private Sub Command4_Click()
Form1.Show
End Sub

Private Sub Form_Load()

End Sub













Command6

Command3

Command2

Command1

Command5

Command4

Command7

Image1

Label1

Text1

List2

List1

Результат выполнения:
1). Иванов Николай
2). Иванов,Николай

Private Sub Command1_Click()
Static n As Integer
n = n + 1
Open"test.txt" For Append As #1
Print #1,"Запись №" & n & ": " & Text1.Text
Close #1
End Sub