Как перевести из делфи на паскаль? - Free Pascal
Формулировка задачи:
Листинг программы
- Var
- i:SmallInt;
- k:LongInt;
- BinString:String;//Здесь двоичное представление текста сообщения
- RecString:String; //Здесь считанная из файла строка
- MY_IN_FILE:TextFile; //Файл-контейнер
- MY_OUT_FILE:TextFile; //Файл-контейнер с сообщением
- Begin
- AssignFile(MY_IN_FILE,FileName);//Присваиваем файлу-контейнеру
- //дескриптор MY_IN_FILE. В переменной FileName имя файла, имя в эту
- //переменную заносится процедурой кнопки Открыть файл
- AssignFile(MY_OUT_FILE,’Задание3.txt’); //Создаём файл Задание3.txt в
- //который запишем содержимое файла-контейнера и зашифрованное сообщение и
- //присваиваем ему дескриптор MY_OUT_FILE.
- Reset(MY_IN_FILE);//Открываем файл-контейнер для чтения
- ReWrite(MY_OUT_FILE);//Открываем файл для записи
- BinString:=StrToBin(Edit1.Text);//В строке BinString двоичное
- //представление строки введённой в Edit1
- k:=1; //Присваиваем k:=1 для того чтобы обрабатывать BinString с
- //первого символа
- While Not Eof(MY_IN_FILE) Do //До конца файла контейнера
- Begin
- ReadLn(MY_IN_FILE,RecString);//Читаем одну строчку из файла
- For i:=1 To Length(RecString) Do//Перебираем символы этой строчки
- Begin
- If RecString[i]=' ' Then//Если встретился пробел то проверяем
- //чему равен очередной бит скрываемой информации
- Begin
- Case BinString[k] Of
- '1':Insert(' ',RecString,i);//Если бит равен 1 то перед пробелом пишем
- //пробел
- '0':Insert('',RecString,i);//Если бит равен 0 то ничего не пишем
- End;
- Inc(k);//Увеличиваем k на 1 чтобы обработать следущий бит информации
- End;
- End;
- WriteLn(MY_OUT_FILE,RecString); //Записываем обработанную строку в файл
- End;
- CloseFile(MY_OUT_FILE); //Закрываем файл-контейнер
- CloseFile(MY_IN_FILE); //Закрываем файл-контейнер с спрятанным
- //сообщением
- ShowMessage('Строка спрятана'); //Выводим сообщение о завершении работы
- End;
Решение задачи: «Как перевести из делфи на паскаль?»
textual
Листинг программы
- Function StrToBin(TextValue:String):String;
- Function DecToBin(x:integer):string;
- const c:array [0..1] of char= ('0','1');
- var res:string;
- d:0..1;
- begin
- res:='';
- while x<>0 do
- begin
- d:=x mod 2;
- res:=c[d]+res;
- x:=x div 2;
- end;
- DecToBin:=res;
- end;
- Var
- TempString:String;
- OctString:String;
- BinString:String;
- i,k:Integer;
- Begin
- For i:=1 To Length(TextValue) Do
- Begin
- TempString:=DecToBin(Ord(TextValue[i]));
- OctString:='';
- If Length(TempString)<8 Then
- For k:=1 To 8-Length(TempString) Do
- OctString:=OctString+'0';
- TempString:=OctString+TempString;
- BinString:=BinString+TempString;
- StrToBin:=BinString;
- End;
- End;
- Var i,k:Integer;
- BinString:String;//Здесь двоичное представление текста сообщения
- RecString:String; //Здесь считанная из файла строка
- MY_IN_FILE:Text; //Файл-контейнер
- MY_OUT_FILE:Text; //Файл-контейнер с сообщением
- Begin
- Assign(MY_IN_FILE,'1.txt');
- Assign(MY_OUT_FILE,'Задание3.txt');
- Reset(MY_IN_FILE);
- ReWrite(MY_OUT_FILE);
- writeln('Введите строку');
- readln(BinString);
- BinString:=StrToBin(BinString);
- k:=1;
- While Not Eof(MY_IN_FILE) Do
- Begin
- ReadLn(MY_IN_FILE,RecString);
- For i:=1 To Length(RecString) Do
- Begin
- If RecString[i]=' ' Then
- Begin
- Case BinString[k] Of
- '1':Insert(' ',RecString,i);
- '0':Insert('',RecString,i);
- End;
- Inc(k);
- End;
- End;
- WriteLn(MY_OUT_FILE,RecString);
- End;
- Close(MY_OUT_FILE);
- Close(MY_IN_FILE);
- writeln('Строка спрятана');
- readln
- End.
Объяснение кода листинга программы
- Функция StrToBin преобразует строку в двоичное представление.
- Функция DecToBin преобразует десятичное число в двоичное представление.
- Вектор c содержит символы '0' и '1'.
- Переменная res используется для хранения промежуточных результатов в функции StrToBin.
- Переменная d используется для хранения остатка от деления в функции StrToBin.
- Переменная x используется в цикле while в функции StrToBin.
- Переменная TempString используется для хранения промежуточных результатов в функции StrToBin.
- Переменная OctString используется для хранения промежуточных результатов в функции StrToBin.
- Переменная BinString используется для хранения промежуточных результатов в функции StrToBin.
- Переменная i используется в цикле for в функции StrToBin.
- Переменная k используется в цикле for в функции StrToBin.
- Переменная RecString используется для чтения данных из файла в функции StrToBin.
- Переменная MY_IN_FILE используется для чтения данных из файла в функции StrToBin.
- Переменная MY_OUT_FILE используется для записи данных в файл в функции StrToBin.
- Цикл while в функции StrToBin используется для чтения данных из файла до конца.
- Вектор c используется для сравнения символов в функции StrToBin.
- Функция Insert используется для вставки пробелов или удаления пробелов в строке в функции StrToBin.
- Переменная k используется для отслеживания количества прочитанных символов в функции StrToBin.
- Переменная i используется в цикле for в функции StrToBin.
- Переменная BinString используется для хранения двоичного представления текста сообщения в функции StrToBin.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д