Показать сообщение отдельно
  #20  
Старый 26.04.2013, 04:14
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Зачот!
_____

Код:
var
cdm: array [0..2] of array [0..53] of string=(('.-','-...','.--','--.','-..',
'.','...-','--..','..','.---','-.-','.-..','--','-.','---','.--.','.-.','...',
'-','..-','..-.','....','-.-.','---.','----','--.-','-.--','-..-','..-..',
'..--','.-.-','.----','..---','...--','....-','.....','-....', '--...','---..',
'----.','-----','......','.-.-.-','---...','-.-.-.','-.--.-','.----.','.-..-.',
'-....-','-..-.','..--..','--..--','.--.-.',' '),(
'а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у',
'ф','х','ц','ч','ш','щ','ы','ь','э','ю','я','1','2','3','4','5','6','7','8','9',
'0','.',',',':',';',')','`','"','-','/','?','!','@',' '),(
'А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У',
'Ф','Х','Ц','Ч','Ш','Щ','Ы','Ь','Э','Ю','Я','1','2','3','4','5','6','7','8','9',
'0','.',',',':',';',')','`','"','-','/','?','!','@',' '));

 function TextToMorse(ds: string): string;
var i, j: integer;
begin
Result:= '';for i := 1 to Length(ds) do for j := 0 to 53 do
 if (ds[i]=cdm[1,j]) or (ds[i]=cdm[2,j]) then Result:=Result+cdm[0,j]+' ';
end;

function MorseToText(ds: string): string;
var
i, j, r: integer; sl, sv: Tstrings;s:string;
begin
sl:= TStringList.Create;sv:= TStringList.Create;
sl.Text:=StringReplace(ds, '  ', #13#10, [rfReplaceAll]);Result:='';
for j := 0 to sl.Count-1 do begin
sv.Text:= StringReplace(sl.Strings[j], ' ', #13#10, [rfReplaceAll]);
for i:=0 to sv.Count-1 do for r := 0 to 53 do
if sv.Strings[i] = cdm[0, r] then Result:= Result + cdm[1, r];Result:= Result + ' ';
end;sl.Free;sv.Free;
end;
Ответить с цитированием