Задачи для самостоятельного решения. 1) Работа с типизированными файлами

Лабораторная работа № 4

Работа с файлами

1) Работа с типизированными файлами

Формат описания файлового типа:

Type <имя типа>= file of <тип компонент>;

Var <имя переменной>: <имя типа>;

или

Var <имя переменной>: file of <тип компонент>;

Например:

Var f1: file of integer;

f2: file of real;

f3: file of char;

Процедуры и функции работы с файлами:

1. AssignFile(f, fname) – связывание файловой переменной f с именем файла fname. В дальнейшем обращение к файлу происходит через файловую переменную f. Этой процедурой всегда начинается любая работа с файлом.

2. Rewrite(f) – создание нового файла. Если файл с заданным именем был непустой, то его содержимое уничтожается. Вновь созданный файл открывается для записи.

3. Reset(f) – открывает файл и устанавливает указатель в начало файла. Содержимое файла не изменяется, а сам файл открывается для чтения.

4. Read(f,х1[,х2,…,хn]) – чтение из файла текущей компоненты в переменную P1. Указатель при этом перемешается на следующую компоненту файла.

5. Write(f,х1[,х2,…,хn]) – запись значения переменной p1 в файл на то место, где стоит указатель. После записи указатель перемешается к следующей компоненте.

6. CloseFile(f) – закрывает файл.

7. Eof(f) – логическая функция – возвращает true, если указатель файла находится в конце файла и false в противном случае;

8. IOResult(f) – проверяет результат последней операции с файлом, выдает 0, если не было ошибок, и номер ошибки ввода-вывода, если она произошла.

9. FilePos(f) – возвращает текущую позицию в файле.

Пример 1. Записать таблицу квадратов целых чисел в файл с именем PRIMER.DAT.

Const n=100;

procedure TForm1. Button1Click(Sender: TObject);

Var F: file of integer;

i,a:integer;

Begin

AssignFile(f, 'c:\stud\f1\primer.dat');

Rewrite(f); //создание нового файла

For i:=1 to n do begin

a:=i*i;

Write(f,i,a); //запись таблицы в файл

end;

CloseFile(f); //закрытие файла

End;

Проверить наличие файла primer.dat.

Пример 2. Просмотреть таблицу квадратов, записанную в файле primer.dat.

Для просмотра содержимого файла можно использовать компонент Listbox.

procedure TForm1.Button2Click(Sender: TObject);

var f: file of integer;

a,b:integer;

st1,st2: string;

Begin

AssignFile(f,'primer.dat');

Reset(f); //открываем для чтения

While not eof(f) do begin //пока нет конца файла выполнять

read(f,a,b); //читаем две компоненты - число и его квадрат

Str(a:3,st1);

Str(b:8,st2);

Listbox1.Items.Add(st1+st2); //выводим на экран

end;

CloseFile(f); //закрываем файл

end;

Задачи для самостоятельного решения

1. Заполнить файл случайными числами.

2. Найти количество и сумму положительных чисел в файле.

3. Найти все числа из файла, кратные данному.

4. Найти максимальный элемент файла и его порядковый но­мер.

5. Найти первый отрицательный элемент файла (или отме­тить, что он не существует).

6. Сосчитать, сколько в файле положительных, отрицатель­ных и равных нулю чисел.

7. В файле содержатся числа от 1 до 10. Сосчитать, сколь­ко раз встречается каждое из них.

8. Разбить данный файл на два, записав в первый из них положительные, а в другой - все остальные числа.

9. Просчитать файл и записать его элементы в массив, сос­читав количество элементов.

10. Проверить, является ли файл целых чисел упорядоченным по возрастанию.

11. Определить, встречается ли число х в данном файле це­лых чисел.

2) Работа с текстовыми файлами

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

Var <имя переменной>: TextFile;

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

Например:

Var f,f1,f2:TextFile;

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

1. AssignFile(f,fname); – связывание физического имени, содержащимся в строке fname, с логическим именем f.

2. Rewrite(f); – открытие для создания нового текстового файла (для записи).

3. Reset(f); – открытие уже существующего текстового файла (для чтения).

4. Append(f); – открытие уже существующего текстового файла (для дозаписи в конец – только для текстовых файлов).

5. CloseFile(f); – закрытие файла.

6. Readln(f,S); – чтение из файла f текущей строки и запись ее в S.

7. Writeln(f,S); – запись строки S в файл f.

8. Read(f,Ch); – чтение текущего символа ch из файла f.

9. Write(f,Ch); – запись символа ch в файл f.

Процедура Writeln(f); записывает в файл "пустую строку", а процедура Readln(f); пропускает очередную строку.

10. Eof(f); – возвращает true, если конец файла.

11. Eoln(f); – возвращает true, если указатель файла достиг маркера конца строки (только для текстовых файлов).

Пример 3: Создать текстовый файл (количество строк заранее не известно).

Var Filename: String; //строка для имени файла

F: TextFile; //файловая переменная

procedure TForm1.Button1Click(Sender: TObject);

Begin

Filename:=Edit1.Text; //получаем имя файла

AssignFile(f,FileName);

Edit2.SetFocus; //курсор помещаем в окно для ввода текста

Rewrite(f);

end;

procedure TForm1.Button2Click(Sender: TObject);

var St: string;

Begin

St:=Edit2.Text; //считываем очередную строку

If St<>''


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: