Пример 8­.2.

Создать программу демонстрации произвольного доступа к элементам файла. Она заносит в файл последовательно числа в диапазоне от N1 до N2 (целые и положительные). После записи из файла считываются на дисплей все его компоненты с номерами (начиная с 0).

Блок-схема алгоритма приведена на рисунке

paskal57

Листинг программы

program prg_8_2;

{$mode objfpc}{$H+}

uses

Classes, SysUtils, RusTrans;

label

Exit;

Const

FileDir=’m:\Lazarus_examples\08_2\’;

var

MyFile: File of integer;                                         // Файловая переменная

FilePath, FileName: string;

N1,N2,i,imax,Temp: integer;

begin

writeln(Rus(‘Введите имя файла’));

readln(FileName);

writeln;

FilePath:=FileDir+FileName;

AssignFile(MyFile,FilePath);                               // Связь файлом на диске

{$I-}                                                                    // Отключить контроль ошибок

Rewrite(MyFile);                                                 // Создать новый файл

{$I+};                                                                   // Включить контроль ошибок

if IOResult = 0                                                      // Проверить ошибку открытия

then writeln(Rus(‘Спасибо’))

else

begin

writeln(Rus(‘Ошибка’));

readln;

goto Exit;                                      // Выход при ошибке

end;

writeln;

writeln(Rus(‘Введите N1, N2′));

readln(N1,N2);

writeln;

imax:=N2-N1;

for i:=0 to imax do

begin

Temp:=N1+i;

write(MyFile,Temp);              // Записать в файл значение номер i

end;

CloseFile(MyFile);

Reset(MyFile);                                             // Открыть для проверки

writeln(Rus(‘Компоненты файла’));

for i:=0 to imax do                                        // Цикл чтения

begin

Seek(MyFile,i);                             // Установить указатель

read(MyFile,Temp);                                    // Прочитать элемент

writeln(Rus(‘Компонент ‘),i,’ = ‘,Temp);       // Вывести его

end;

CloseFile(MyFile);

writeln;

writeln(‘OK’);

readln;

Exit:;

end.

Консоль перед закрытием программы:

paskal58

Twitter SEO Community Ваау! News2.ru Chipp Korica SMI2 Google Bookmarks Digg I.ua Закладки Yandex Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web БобрДобр.ru Memori.ru rucity.com МоёМесто.ru Mister Wong



Copyright © 2009-2010 Программирование на паскале.