«Работа с текстовыми файлами в среде
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
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
|
|
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
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.