Разработка урока по теме Работа с текстовыми файлами в среде 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