русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Занятие 4. Использование текстовых файлов в качестве нетипизированных.


Дата добавления: 2014-11-28; просмотров: 463; Нарушение авторских прав


Рассмотрите пример.

Задача . Из текстового файла прочитать находящиеся там символы, заменить их на символы, отличающиеся своими кодами от исходных на определенную величину, меняющуюся от символа к символу (шифрация методом простой одноалфавитной подстановки). Поместить эти символы в новый файл, разместив в нем предварительно число перекодированных символов и таблицу смещений кодов.

Program Kodirovka;

Const

NofCod = 20; {Размер таблицы смещений кодов}

Var

FirstFile : text; {Исходный файл}

SecondFile : file; {Результирующий файл}

FirstName, SecondName : string;

IOres : byte; {Код результата работы с файлом}

NofSymb : LongInt; {Число символов в файле}

Codes : Array[1..NofCod] of byte; {Таблица смещений кодов символов}

Buffer : Array [1..NofCod] of char; {Буфер для символов}

i : word;

{Процедура записи в файл с проверкой}

Procedure WriteAndControl (Var Buf, Amount : word);

Var

result : word; {Число переданных символов}

Begin

blockwrite (SecondFile, Buf, Amount, result);

if result <> Amount

then

begin

writeln('Нет места на диске ');

Halt;

end;

End;

Begin

{Связь с исходным текстовым файлом для чтения}

repeat

{$I-}

write('Имя исходного файла: ');

readln(FirstName);

assign(FirstFile, FirstName);

reset(FirstFile);

{$I+}

IOres := IOresult;

if IOres <> 0

then

writeln('Такого файла нет ');

until IOres =0;

{Связь с результирующим файлом без типа для записи}

repeat

{$I-}

write('Имя результирующего файла: ');

readln(SecondName);

assign(SecondFile, FirstName);

rewrite(SecondFile, 1); {Размер блока в один байт}

{$I+}

IOres := IOresult;

if IOres <> 0

then

writeln('Неправильное имя файла ');

until IOres =0;

{Установка счетчика символов и запись его в файл}

NofSymb := 0;



WriteAndControl(NofSymb, 4);

{Задание таблицы смещений кодов символов, запись ее в файл}

Randomize;

for i := 1 to NofCod do

Codes[i] := Random(256);

{Перекодировка символов и запись содержимого полных буферов в файл}

i := 0;

while not Eof(FirstFile) do

begin

Inc(NofSymb);

Inc(i);

if Eoln(FirstFile)

then

begin

Buffer[i] := Chr((13+Codes[i]) mod 256);

if i=NofCod

then

begin

writeAndControl(Buffer, NofCod);

i := 0;

end;

Inc(i);

Buffer[i] := Chr((10+Codes[i]) mod 256);

readln(FirstFile);

end;

else

begin

read(FirstFile, Symbol);

Buffer[i] := Chr((Ord(Symbol)+Codes[i]) mod 256);

end;

if i = NofCod

then

begin

writeAndControl(Buffer, NofCod);

i := 0;

end;

{Запись в файл завершающей части символов}

if i <> 0

then

begin

writeAndControl(Buffer, i);

{Запись числа символов}

NofSymb := FileSize(SecondFile)-NofCod-4;

Seek(SecondFile, 0);

writeAndControl(NofSymb, 4);

{Завершение программы}

close(SecondFile);

writeln('Конец работы программы ');

readln;

End.

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



<== предыдущая лекция | следующая лекция ==>
Выберите с учителем задачи из предложенного ниже списка. | Задачи для самостоятельного решения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.802 сек.