Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Ребята помогите решить задачу на делфях! (http://forum.oszone.net/showthread.php?t=108490)

Lenich 05-06-2008 03:48 818747

Ребята помогите решить задачу на делфях!
 
Вложений: 1
Ребята есть программа которая шифрует текст методом магического квадрата, вот ее код:

function encrypt(str:string):string;
const
base:array [1..16] of byte = (16, 3, 2, 13,
5, 10, 11, 8,
9, 6, 7, 12,
4, 15, 14, 1);
var
i,j:integer;
begin
str:=StringReplace(str,#32,'',[rfReplaceAll]);
If Length(str)>length(base) then SetLength(str,length(base))
else if Length(str)<length(base) then
begin
for i:=Length(str) to length(base) do
str:=str+'.';
end;
Result:='';
for j:=1 to length(base) do
for i:=1 to length(str) do
begin
If i=base[j] then
Result:=Result+str[i];
end;
end;

Но нужен код для дешифровки текаста которая зашифровала эта программа! Очень прошу помощи! И заранее благодорю!
За программу шифровки спасибо некому Voyager!!!

Altair86 05-06-2008 16:08 819213

Цитата:

Цитата Lenich
str:=StringReplace(str,#32,'',[rfReplaceAll]); »

Можно нубский вопрос: а что на что здесь заменяет функция StringReplace? В делфи не секу :( , но в алгоритме попробую разобраться вечером.

Admiral 05-06-2008 16:40 819232

Эта функция заменяет #32 в строчке str на ", а флаг rfReplaceAll указывает найти все найденные. Результат выполнения сохраняет в саму же строчку str.
StringReplace - Функция. Справочник - Основы Delphi

Altair86 05-06-2008 18:20 819318

Цитата:

Цитата Admiral
Эта функция заменяет #32 в строчке str на " »

В смысле, это получается удаление пробелов из строчки? #32-- пробел вроде, а '' -- пустая строка?

Altair86 06-06-2008 16:02 820105

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

Lenich 07-06-2008 00:49 820482

Altair86, Дружище спасибо тебе большое!!!!

Altair86, есть еще одна проблема... при шифровке появляються лищние точки, не подскажешь еще как избавиться от них?

Admiral 07-06-2008 01:14 820498

Это критично?
Цитата:

Цитата Lenich
str:=str+'.'; »


Altair86 07-06-2008 11:37 820710

Цитата:

Цитата Lenich
при шифровке появляються лищние точки, не подскажешь еще как избавиться от них? »

Не подскажу. Если заранее неизвестно, заканчивалась ли шифруемая фраза точкой, то как определить, все точки лишние или (все-1)? Можно к программе-дешифратору пришить "хвост", считающий точки в конце строки и убирающий либо их все, либо все, кроме одной.

Lenich 08-06-2008 19:12 821616

Всем большое спасибо!!! Очень мне помогли!!! :up


Время: 14:05.

Время: 14:05.
© OSzone.net 2001-