Отправляет email-рассылки с помощью сервиса Sendsay

Программирование в Turbo PASCAL

  Все выпуски  

Программирование в Turbo PASCAL


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

 

Служба почтовых рассылок Subscribe.Ru и проект Pascal-2000 mf company

ПРОГРАММИРОВАНИЕ В TURBO PASCAL

Здравствуйте уважаемые подписчики!
 

   Всякий раз при выполнении одной и той же программы (особенно при ее отладке) приходится заново вводить исходные данные. Удобным способом сохранения информации, полученной в ходе выполнения программы, служит запись этой информации на внешний Файл – последовательность элементов одного типа, которые хранятся по строкам. Если программа взаимодействует с внешними файлами, то файлы должны быть описаны в программе либо явно в разделе переменных VAR, либо с использованием разделов типа TYPE. Объявление файлов в разделе переменных имеет вид:

VAR <имя файла>: FILE OF <базовый тип>;

Например:
Var
NewFile: file of  real;
File473: text;

   Определение данных с использованием раздела описания типов TYPE делает программу более универсальной и упрощает отладку программы. Объявление файлов в этом случае имеет вид:

TYPE имя типа= FILE OF базовый тип;
VAR имя файла: имя типа;

Например:
Type  T1: file of  real;
T2: Text;
Var   FT: T1
F3: T2;

   Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никаких операций (присваивать значения, сравнивать и т.д.). Их можно использовать для выполнения операций с файлами (чтения, записи, удаления файла и т.д.).
 При работе с файлами автоматически проверяются ошибки ввода-вывода. Если проверка ошибки включена (по умолчанию или с помощью ключа компилятора {$I+}, то при возникновении ошибки выполнение программы автоматически завершается, если же проверка ошибки отключена (с помощью ключа {$I-}), программа продолжает выполняться и можно проверить результат ввода-вывода с помощью функции IOResult.

Стандартные процедуры и функции для всех файлов:

Assign(F, Name)

связывает файловую переменную F с внешним файлом, имеющим имя Name. Имя типа должно быть написано в соответствии с правилами MS DOS, может включать путь и не должно превышать 79 символов.

Reset(F)

Открывает существующий файл, с которым связана файловая переменная F.

Rewrite(F)

Открывается новый пустой файл, и ему присваивается имя, заданное процедурой Assign. Если файл с таким именем уже существует, то он уничтожается.

Close(F)

Закрывает внешний файл, с которым связана файловая переменная F.

Eof(F)

Конец файла. (Принимает значение True или False).

Erase(F)

Уничтожается внешний файл, с которым связана файловая переменная F.

Rename(F,NewName)

Внешний файл, с которым связана файловая переменная F, получает новое имя NewName. Процедура Rename применима только к закрытым файлам.

MkDir(N, S)

Создается новый катало, путь до которого указан параметром Path.

GetDir(N,S)

В переменную S типа String записывается текущий каталог накопителя, номер которого указан параметром N. Параметр N имеет следующее значение: 0 - текущий накопитель, 1 - накопитель А:, 2 - накопитель В: и т.д.

IOResult

Функция предназначена для поиска ошибок, возникающих при работе с файлами. Результат последней операции ввода-вывода. Возвращает число 0, если операция ввода-вывода завершилось успешно, и другое число - в противном случае.

Стандартные процедуры и функции для текстовых файлов:

Read(F,<список вывода>)

Из файла, с которым связана файловая переменная F, читаются значения для одной или нескольких переменных списка ввода. Эти значения преобразуются автоматически в тот тип данных, который имеет переменная.

ReadLn(F,<список вывода>)

То же, что и процедура Read, но непрочитанная часть строки, включая признак конца строки, пропускается.

Write(F,<список вывода>)

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

WriteLn(F,<список вывода>)

То же, что и процедура Write, но выводимая информация завершается признаком конца строки.

Append(F)

Открытие файла для добавления в конец информации.

EoLn(F)

Конец строки файла. (Принимает значение True или False).

SeekEof(F)

Отличается от Eof(F) тем, что стоящие в конце файла символы пробела и табуляции пропускаются.

SeekEoLn(F)

Отличается от EoLn(F) тем, что стоящие в конце строки символы пробела и табуляции пропускаются.

Пример чтения и записи данных в файл

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

   В файле Info1.txt записаны целые числа в нескольких строках. Нужно вычислить сумму элементов каждой строки и результаты вместе с исходными данными записать в существующий файл Info2.txt.

Program ReadWrite;
Uses Crt;
Var F1, F2: Text; S, Sum: integer;
Begin ClrScr;
Assign(F1,'C:/Info1.txt'); Reset(F1);
Assign(F2,'Info2.txt'); Rewrite(F2);
While not Eof(F1) do
Begin Sum:=0;
While not Eoln(F1) do
Begin Read(F1,S); Write(F2,S:2);
Sum:=Sum+S; end;
WriteLn(F2,' ':3,'summa = ',Sum:4);
Readln(F1); end;
Write(' результат находится в файле Info2.txt');
Close(F1); Close(F2);
end.

Исходные данные в файле Info1.txt Результат в файле Info2.txt
3 5 3 8 3 9
3 7 3 7 0 6
3 9 0 1 8 7
3 5 3 8 3 9 summa = 31
3 7 3 7 0 6 summa = 26
3 9 0 1 8 7 summa = 28

Предлагаем Вам самим выбрать ТЕМУ для следующей рассылки. Если у Вас есть какие-либо вопросы по программированию в Pascal или же Вы наоборот хотите поделиться своими навыками, то вот наш адрес:

pascal-sub@mail.ru

   Мы ответим на ВСЕ присланные сообщения. Заранее спасибо за любые пожеланиям и рекомендациям по поводу.

Рассылки Subscribe.Ru
Программирование в Turbo PASCAL

Акция: "ДОЛОЙ ОШИБКИ!"

    При компиляции набранного кода или его выполнении программа Pascal выполняет проверку на наличие ошибок и выдает о них сообщения (Error...). Не все знают точно, что они означают и как с ними "бороться". Именно для них и предназначена эта акция. Теперь, если у Вас что-то не получается, а программа находит ошибку, то Вы можете прислать нам ее номер, название или весь Ваш код целиком, не забыв указать обратный e-mail, а мы со своей стороны обязательно постараемся Вам помочь:

!!!>>> Задать вопрос про "ошибку" <<<!!!



http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное