Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РАБОТА С ТЕКСТОВЫМИ ФАЙЛАМИ И БАЗАМИ ДАННЫХ.docx
Скачиваний:
13
Добавлен:
10.06.2015
Размер:
29 Кб
Скачать
☆

Файлы последовательного доступа

Последовательные файлы состоят из рядов строк текста, и их часто называют ASCII-файлами. Каждая строка текста завершается символом возврата каретки (ASCII13), а файл заканчивается сим­воломCtrl-Z(ASCII26). Каждый символ текста занимает один байт. Текст можно просматривать и редактировать с помощью редактораNotepad (Блокнот).

С последовательным файлом можно работать в двух режимах: запись (или добавление данных) и чтение. Для создания последовательного файла необходимо открыть файл, записать данные и закрыть файл.

Файл открывается оператором вида:

Open "filename" For mode As #number

filename– полное имя файла,

mode – режим доступа к файлу:

Output – это режим, при котором файл открыт для записи; обычно при этом режиме создается новый файл; если открывается для записи уже существующий файл, то ранее хранимая информация будет стерта.

Input – это режим, при котором файл открыт только для чтения информации, записывать в файл при таком режиме нельзя;

Append – это режим, при котором файл открыт для записи, но в отличие от режима OUTPUT, при котором добавление новой информации приводит к уничтожению имеющейся, в режиме APPEND новая информация размещается в конце файла, за последней записью без уничтожения ранее имеющейся

number– идентифицирует файл в программе и может принимать значения от 1 до 255. Номер связан с файлом только тогда, когда файл открыт.

В последовательный файл данные записываютсяс помощью оператораPrintилиWrite. Каждый оператор записывает одну строку данных в файл, заканчивающуюся возвратом каретки. Формат операторов следующий:

Print #number, valuel, value2,...

Write #number, valuel, value2,...

Оператор Printзаписывает данные с метками между отдельными элементами. Он подходит для записи текстовых файлов с одним элементом на строку. ОператорWriteхранит данные в формате, разделенном запятыми.

Файл закрывается оператором Closeв формате

Close #number

Чтение последовательного файла, как и его создание, состоит из трех этапов: открытие файла, чтение данных и закрытие файла. Файл открывается с помощью оператора следующего вида:

Open "filename" For Input As #number

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

Line Input #number, string

Input #number, variablel, variable2,...

Line Inputсчитывает строку полностью в переменнуюstringи может использоваться для чтения текстовых файлов, когда они записаны с помощью оператораPrint. Оператор считывает из файла по одному символу, пока не встретит символ «возврат каретки» или последовательность «возврат каретки» – перевод строки».

Inputсчитывает данные и размещает их в переменных заданного списка. Данные считываемые оператором записываются в файл с помощью оператораWrite#.

Последовательные файлы всегда должны читаться с начала файла. Для обнаружения конца файла можно использовать функцию EOF. После завершения чтения файл нужно закрыть с помощью командыClose.

Пример 1.

Sub filee()

‘открытие файла и запись в нее информации

Number = FreeFile

Open "d:\3.txt" For Output As #Number

Print #Number, "Это хранится в файле"

Close #Number

‘открытие файла и чтение из него информации

Number = FreeFile

Open "d:\3.txt" For Input As #Number

Input #Number, a$

MsgBox ("Чтение из файла: " & Chr(13) & a$)

Close #Number

End Sub

Пример 2.

Sub filee()

‘открытие файла и запись в нее информации

Number = FreeFile

n$ = InputBox("ВВедите имя файла")

Open n$ For Output As #Number

Print #Number, "Это хранится в файле"

Close #Number

‘открытие файла и чтение из него информации

Number = FreeFile

Open n$ For Input As #Number

Input #Number, a$

MsgBox ("Чтение из файла: " & Chr(13) & a$)

Close #Number

End Sub

Пример 3.

Sub filee()

Number = FreeFile

n$ = InputBox("ВВедите имя файла")

Open n$ For Output As #Number

Do

marka$ = InputBox("Введите марку автомобиля (для выхода QWE)")

If marka$ = "QWE" Then Exit Do

Inomer$ = InputBox("Введите номер автомобиля")

tsvet$ = InputBox("Введите цвет автомобиля")

god$ = InputBox("Введите год производства автомобиля")

tsena$ = InputBox("Введите продажную цену автомобиля")

'запись информации в файл

Write #Number, marka$, nomer$, tsvet$, god$, tsena$

Loop

'закрытие файла

Close #Number

MsgBox ("Внесение информации завершено")

Number = FreeFile

Open n$ For Input As #Number

i% = 1

Do Until EOF(Number)

Input #Number, marka$, nomer$, tsvet$, god$, tsena$

MsgBox "Данные об " & i% & " автомобиле" & Chr(13) & marka$ & Chr(9) & nomer$ & Chr(9) & tsvet$ & Chr(9) & god$ & Chr(9) & tsena$

i = i + 1

Loop

Close #Number

End Sub

Пример 4. Изменение содержания файла

Sub filee()

Open "c:\avto.txt" For Input As #1

Open "c:\avto2.txt" For Output As #2

Do

Input #1, marka$, nomer$, tsvet$, god$, tsena$

If marka$ = "москвич" Then marka$ = "ока"

Print #2, marka$, nomer$, tsvet$, god$, tsena$

Loop Until EOF(1)

Close #1, #2

'удаление исходного файла

Kill "c:\avto.txt"

' переименование нового файла

Name "c:\avto2.txt" As "c:\avto.txt"

End Sub