Другие разделы

Правила

FAQ

Пользователи

Комментарии

Друзья сайта

Flash Loops

RaceBook

Файлы Delphi/pascal

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

Файл это набор данных одного типа.

Файлы бывают трех типов:

  • текстовые;
  • типизированные;
  • не типизированные.

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

Пример описания типизированного файла в Delphi/Pascal:

  1. f:file of char; {файл символов}
  2. f:file of real; {файл вещественных чисел}
  3. f:file of integer; {файл целых чисел}
  4. f:TextFile; f:text; {текстовый файл}

Не типизированный файл объявляется следующим образом:

  1. f:file;

После указания типа файла нужно задать конкретный файл, из которого мы будем брать данные или же записывать данные в этот файл, делается это так (Delphi):

  1. Assign(f,'a:\result.txt');

Для чтения из файла следует использовать процедуру reset.

Пример:

  1. reset(f);

f – файловая переменная.

Чтобы проверить существует ли открываемый файл или верен путь к нему используется функция IOResult. Если функция IOResult равна «0», значит файл открылся без ошибок, иначе файл не существует, либо занят другим приложением или неверен путь. Для того чтобы отключить автоматическую проверку ошибок, нужно поместить директиву {$I-}, перед открытием файла. Эта директива сообщает компилятору, что программа берет на себя контроль ошибок. После инструкции открытия файла следует поместить директиву {$I+}, восстанавливающую режим автоматической обработки ошибок ввода/вывода.

Для записи данных из файла в переменную используем инструкции read или readln, пример:

  1. readln(f,переменная);

Read – чтение из файла одного символа;

Readln – чтение целой строки.

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

Пример:

  1. rewrite(f);

Чтобы открыть файл для добавления данных в него следует использовать процедуру Append. При открытии указатель ставится в конец файла, то есть данные, которые будут добавляться в файл, будут помещены после всех данных, которые находятся в файле. Процедуру append можно использовать только с файлами текстового типа.

Пример:

  1. append(f);

f – переменная файла, текстового типа.

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

Процедура Seek перемещает указатель в файле на нужную позицию, пример:

  1. Seek(f,2); {указатель перемещается на начало 3 символа}

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

  1. size:=FileSize(f); {тип переменной size:integer;}

Для того чтобы записать в файл данные, нужно использовать инструкции write или writeln. Пример записи в файл в Delphi:

  1. Write(f,данные);

f – файловая переменная;

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

Writeln отличается от Write только тем, что данные записываются с новой строки, а не в одну строчку.

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

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

Пример программы чтения и записи в файл:

Условие: открыть файл «1.txt» для чтения, считать из него все данные и вывести на экран, закрыть файл, создать файл 2.txt с числовым типом и записать туда количество строк в первом файле. Выполнить проверку существования первого файла.

Решение:

  1. Var
  2.   f_1:TextFile;
  3.   f_2:File of integer;
  4.   str:string;
  5.   i:integer;
  6. begin
  7.   i:=0;
  8.   assign(f_1,'1.txt'); {$I-}
  9.   reset(f_1); {$I+}
  10.   if IOResult<>0 then writeln('error')
  11.   else
  12.     begin
  13.       while not EOF(f_1) do
  14.         begin
  15.           readln(f_1,str);
  16.           writeln(str);
  17.           inc(i);
  18.         end;
  19.       close(f_1);
  20.       assign(f_2,'2.txt');
  21.       rewrite(f_2);
  22.       write(f_2,i);
  23.       close(f_2);
  24.     end;
  25. end.

Пример программы добавление информации в файл:

Условие: добавить в файл текст, который будет набран с клавиатуры.

Решение:

  1. Var
  2.   f:TextFile;
  3.   str:string;
  4.   i:integer;
  5. begin
  6.   writeln('Vvedite text');
  7.   readln(str);
  8.   assign(f,'1.txt'); {$I-}
  9.   append(f); {$I+}
  10.   if IOResult<>0 then writeln('error')
  11.   else
  12.     begin
  13.       writeln(f,str);
  14.       close(f);
  15.     end;
  16. end.

Обсудить на форуме

© Филимошин В. Ю., 2010

Вход

Логин:

Зарегистрировать

Пароль:

Забыли пароль?

запомнить

Пятнашки

1
4
2
5
13
12
9
3
7
6
11
8
14
10
15

Опрос

Как Вы узнали об этом сайте?

От админа (1035)

48.6%

От друзей (32)

1.50%

Поисковик выдал... (974)

45.7%

Увидел(а) на других сайтах (46)

2.16%

Другое (41)

1.92%

Случайное фото

Оперативка DIMM PC-100 64Мб

Счётчики

Яндекс.Метрика

Internet Map

Каталог@Mail.ru - каталог ресурсов интернет