Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика.doc
Скачиваний:
44
Добавлен:
22.03.2016
Размер:
12.91 Mб
Скачать

Чтение из файла.

Способы:

  1. Оператором input. Запись – input#1, список, ,

  2. Оператором line input – считывает целую строку. Запись – line input #1, строка

  3. С помощью функции output - чтение всего содержимого файла и помещение его на форму Text Box, которому предварительно задаются свойства.

Multiline – true

Scrollbars – Vertical

LOF – определяет размер файла в символах

Kolvo = LOF (1)

Text1, text=input (kolvo, #1)

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

1)Line Input # считывает одну строку;

2)Input # считывает последовательность символов, обычно записанных с помощью оператора Write #;

3)Input$ считывает определенное количество символов.

Существует несколько вариантов чтения всей информации из файла. Перед чтением нужно открыть файл с помощью оператора Open…For Input:

IntFH = FreeFile

Open “Tex t .txt” For Input As intFH

Первый вариант

Do Until EOF(intFH)

Line Input #intFH, strString

StrText = strText & strString & vbLf

Loop

Второй вариант

StrText = Input $ (LOF(intFH), intFH)

Оба варианта приводят к одинаковому результату. В первом варианте оператор Input выполняется в цикле, пока не будет достигнут конец файла. Функция EOF(End Of File) возвращает значение True при достижении конца файла. При этом на каждом шаге цикла считывается отдельная строка и к ней добавляется символ конца строки, который отбрасывается оператором Line Input.

Во втором варианте весь файл считывается функцией Input $. Функция LOF (Length Of File) позволяет определить длину файла в битах.

Независимо от вида оператора Input указывается не имя файла, а только номер канала, т.е. дескриптор файла (intFH).

Чтение из файла

Способы

- оператором input;

-оператором Line input;

- c помощью функции input.

Inputinput # N файла, список,

Оператор Input # используется, когда необходимо прочитать данные, имеющие структуру с разделителями (в качестве разделителей - запятые). Такие файлы получаются при использовании оператора записи Write #.

Input #filenumber, varlist,где,

filenumber - номер файла,

varlist - список переменных.

При работе этого оператора сначала считывается целая строка, а затем подстроки, отделенные разделителями (запятыми), помещаются в соответствующие переменные списка.

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

Пример . Чтение файла с помощью оператора Input #

Private Sub Command2_Click()

Open pathfile For Input As #1

Do While Not EOF(1)

Input #1, strfile

Picture1.Print strfile

Loop

Close #1

End Sub

Функция Input считывает из файла заданное количество символов и обычно используется для чтения данных, записанных в файл оператором Print #.

Input(number, #filenumber),где

number - целое число, которое задает количество считываемых из файла символов;

filenumber - номер файла.

При использовании этой функции следует иметь в виду, что необходимо знать количество считываемых символов. Поэтому предварительно необходимо вычислить длину считываемого файла с помощью функции Fileline.

Пример .Чтение файла с помощью функции In put

Private Sub Command2_Click()

Open pathfile For Input As #1 ‘открытие файла на чтение

len_str = FileLen(pathfile) ‘определение числа символов в файле

strfile = Input(len_str, #1) ‘считывание всех символов файла в строку

Text2.Text = strfile ‘вывод строки в TextBox

Close #1

End Sub

Line input-считывает текстовые строки; Line input #, строка.

Оператор Line Input # используется для построчного чтения данных из последовательного файла, обычно записанного оператором Print #.

Line Input #filenumber, varname,где

filenumber - номер файла,

varname - имя переменной.

Оператор посимвольно считывает всю строку данных из файла и помещает ее в строковую переменную. При этом разделителем строк в файле служит стандартный разделитель строк символ возврата каретки CHR(13) или последовательность символов возврата каретки и перевода строки CHR(13)+CHR(10), причем в переменную varname эти разделители не вставляются.

Для того, чтобы прочитать все данные из файла при помощи этого оператора, необходимо организовать цикл чтения данных из файла.

Пример. Чтение файла с помощью оператора Line Input #

Private Sub Command2_Click()

Open pathfile For Input As #1 ‘открытие файла на чтение

Do While Not EOF(1) ‘организация цикла на чтение файла до конца

Line Input #1, strfile ‘построчное чтение записей из файла в переменную

Text2.Text = Text2.Text + strfile + Chr(13) + Chr(10) ‘формирование очередной строки TextBox

Loop

Close #1

End Sub

Функция Output – для чтения всего содержания файла и помещения его на экранную форму Texbox, которому предварительно задаются свойства: Multiline – true; Scrollbars – Vertical; Kolvo=LOF(1); LOF – (leugth of file) – определяет размер файла в символах.

Text1. Text = input (kolvo,#1)

Запись в файл

Запись в файл производится текстовыми строками

2 способа:

  • Write – список значений, применяется когда файл будет использоваться как входящий. Является более универсальным способом. Разделителем является запятая.

  • Print – применяется когда файл надо позже редактировать. Разделитель- точка с запятой ( ;). Вставка пробела spc (размер). Значение с новой позиции - Tab

Write # номер файла, список значений

Print # номер файла, список (через разделитель)

Запись данных в файл. В Visual Basic для записи информации в файл используются операторы Print #и Write #.

Оператор Print #. Для сохранения данных в файле нужно открыть файл для записи или добавления оператором Open (Open… For Output или Open … For Append), а потом применить оператор Print #.

Если в операторе данные разделять запятыми, то в файле они будут разделены символами табуляции:

Print #intFH, “Фрагмент1”, “Фрагмент2”

Эта строка соответствует строке:

Print #intFH, “Фрагмент1”; Tab ;“Фрагмент2”

Если в операторе для разделения данных использовать точку с запятой, то данные в файл записываются без разделителей:

Print #intFH, “Фрагмент1” ; “Фрагмент2”

Эта строка соответствует строке

Print #intFH, “Фрагмент1 Фрагмент2”

Оператор Write #. Этот оператор имеет такой же синтаксис, что и оператор Print #. Отличие состоит в форматировании вывода. Если Print # сохраняет данные в виде обычного текста, то Write # заключает текстовые строки в кавычки, а цифры выводятся без кавычек.

Print #intFH, “Мама”,”Папа”, 7645

В файле будет: Мама Папа 7645

Write #intFH, “Мама”,”Папа”, 7645

В файле будет: “Мама”, “Папа”, 7645

Данные, сохраненные с помощью оператора Write#, можно считать оператором Input #.

Запись в файл.

-способ Write; Запись данных в файл производится

.-способ Print. текстовыми строками.

Write # номер файла, список значений.

Пример . Запись файла с помощью оператора Write #

Dim pathfile As String

Private Sub Command1_Click()

pathfile = "C:\WINDOWS\Рабочий стол\primer\primer.txt" 'имя файла

Open pathfile For Output As #1 'открытие файла на запись

Write #1, "Проверка работы с файлами" 'запись в файл

For i = 1 To 3

Write #1, "Строка", i 'запись в файл

Next

Close #1

End Sub

Print # номер файла, список значений через разделитель.

Пример.Запись файла с помощью оператора Print #

Dim pathfile As String

Private Sub Command1_Click()

pathfile = "C:\WINDOWS\Рабочий стол\primer\primer.txt" ‘имя файла

Open pathfile For Output As #1 ‘открытие файла на запись

Print #1, " Проверка работы с файлами VB " ‘запись в файл

For i = 1 To 3

Print #1, i ‘запись в файл

Next

Close #1

End Sub

Запись идет по строкам, если в Print использовать «;» запишется одна строка.

Каждый раз при выполнении программы файл будет перезаписываться заново.

Если необходимо добавлять записи в файл, нужно открыть его на дозапись

Open pathfile For Append As #1

При выполнении программы новые строки будут записываться в конец файла.

Команда Write – применяется, когда файл будет использоваться как входящий. « ,» – разделитель. Элементы заключаются в кавычки. После записи последнего элемента записывается символ перехода на новую строку.

Команда Print – применяется, когда файл нужно отредактировать. « ; » - разделитель / Spc ( ) – обеспечивает расстановку пробела. Tab ( )– запись следующих значений, позиций.

& Вывод информации в файл методом Write.

Непосредственно вывод в текстовый файл осуществляется при помощи инструкции write или writeln. В общем виде эти инструкции записываются следующим образом:

write (ФайловаяПеременная, СписокВывода) ;

writeln (ФайловаяПеременная, СписокВывода);

где:

ФайловаяПеременная — переменная, идентифицирующая файл, в который выполняется вывод;

СписокВывода -- разделенные запятыми имена переменных, значения которых надо вывести в файл. Помимо имен переменных в список вывода можно включать строковые константы.

Например, если переменная f является переменной типа TextFiie, то инструкция вывода значений переменных x1 и х2 в файл может быть такой:

write(f, 'Корни уравнения', xl, х2);

Различие между инструкциями write и writeln состоит в том, что инструкция writeln после вывода всех значений, указанных в списке вывода, записывает в файл символ "новая строка".

Команда закрытия файла:

Close # номер файла

Можно через запятую – Close #1,#2, #3

Если список отсутствует, то будут закрыты все открытые файлы

Закрытие файлов:

Close # Filenum

Close F1, F2, F3.

Close

Закрытие файла Для закрытия открытого файла или канала предназначен оператор Close. Например,

Close #intFH

Команда закрытия файла.

Close # номер файла.

Перечисление файлов производится через запятую. ( Close #1,#2,#3,…).

Если список отсутствует, то будут закрыты все файлы.