Как перевести из делфи на паскаль? - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д