Работа с текстовыми файлами. Программа вывода содержимого текстового файла в шестнадцатеричном формате

Страницы работы

5 страниц (Word-файл)

Содержание работы

ЛАБОРАТОРНАЯ РАБОТА №4

Тема: Работа с текстовыми файлами.

Цель работы: Изучить перевод текста из обычной формы в шестнадцатеричный формат.

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

Псевдокод программы:

program lab_4;

type {Описание типов}

f = file of char;    {Тип символьного файла}

var {Описание переменных}

nach,konec: longint; {Начальная и конечная позиции}

procedure perevod(symbol: char); {Процедура перевода в 16-код}

procedure view(nach: longint);  {Проседура вывода на экран}

var

n: longint;    {переменная номера символа в файле}

i,j: integer   {переменные счётчиков}

c: char;       {символьная переменная}

str: string;   {строковая переменная}

a: f;          {переменная файлового типа}

begin

{Инициализация файла и позиционирование на нужный элемент кратный 475}

seek(a,nach);

for i:=1 to 25 do

begin

for j:=1 to 19 do

{вывод символов из файла с заменой неотображаемых}

{вывод перегородки}

for j:=1 to length(str) do

{вывод 16-кода с помощью процедуры perevod}

end;

close(a);

end;

procedure scroll(nach,kon:integer); {процедура скроллинга}

var

key:char;   {переменная нажатой клавиши}

a:f;        {файловая переменная}

begin

{инициализация файла}

repeat

{ввод клавиши}

Case Key of

#80: {вниз}

Begin

{проверка на заполненность страницы}

if kon>filesize(a) then kon:=filesize(a);

if kon<>filesize(a) then

{расчёт новых позиций, передача в процедуру вывода}

end;

#72: {вверх}

Begin

{проверка нахождения на первой странице}

if nach>0 then

{расчёт новых позиций, передача в процедуру вывода}

end;

#13: break;

end;

until false;

end;

begin

{задание начальной и конечной позиций}

view(nach);

scroll(nach,kon);

end.

Контрольный пример:

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

Результат работы программы:

Рисунок 1 – Первая страница

Рисунок 2 – Последняя страница

Текст программы:

program lab_4;

uses crt;

type

f = file of char;

var

nach,konec: longint;

procedure perevod(symbol: char);

const

mas: array[0..15] of char =('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');

var

a,b: char;

begin

a:=mas[ord(symbol) div 16];

b:=mas[ord(symbol) mod 16];

write(' ',a,b);

end;

procedure view(nach: longint);

var

n: longint;

i,j: integer

c: char;

str: string;

a: f;

begin

clrscr;

assign(a,'d:\TEST3.TXT');

reset(a);

seek(a,nach);

n:=nach;

for i:=1 to 25 do

begin

for j:=1 to 19 do

begin

if n=filesize(a) then break;

read(a,c);

if (ord(c)<32) and (ord(c)>0) then

write('*')

else

write(c);

str:=str+c;

inc(n);

end;

{end for}

if n mod 19<>0 then write(' ':19-(n mod 19));

write(' |');

for j:=1 to length(str) do

perevod(str[j]);

str:='';

if n=filesize(a) then break;

if i<>25 then writeln;

end;

{end for}

close(a);

end;

procedure scroll(nach,kon:integer);

var

key:char;

a:f;

begin

assign(a,'d:\TEST3.TXT');

reset(a);

repeat

key:=Readkey;

if key=#0 then key:=readkey;

Case Key of

#80:

begin

if kon>filesize(a) then kon:=filesize(a);

if kon<>filesize(a) then

begin

nach:=nach+475;

kon:=nach+475;

view(nach);

end

{end if}

end;

#72:

begin

if nach>0 then

begin

nach:=nach-475;

kon:=nach+475;

view(nach);

end;

{end if}

end;

#13: break;

end;

until false;

close(a);

end;

begin

nach:=0;

konec:=475;

clrscr;

view(nach);

scroll(nach,konec);

end.

Похожие материалы

Информация о работе

Тип:
Написанные программы на языках программирования
Размер файла:
151 Kb
Скачали:
0