Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.04.15;
Скачать: CL | DM;

Вниз

помогите разобраться с StringList и memo   Найти похожие ветки 

 
tj.nelson   (2011-12-11 16:49) [0]

Ребят, помогите разобраться. Пишу функцию шифрации по ключевому слову. Шифрует норм, но постоянно после каждого символа идет переход на новую строку. И в Memo каждый символ идет с новой строки...

Помогите пожалуйста, а то у меня уже мозги закипают....
Вот код функции:
function Shifrator(slovo, file1: string): string;
var  otv,ras:TStrings;
   a,b,c,h:integer;
   slovo2, txt:string;

begin
ras:= TStringList.Create();
otv:= TStringList.Create();
otv.Text:="";
if FileExists(file1) then
 ras.LoadFromFile(file1)
else
 Result:="No File";
txt:= ras.Text;
a:= Length(txt);
b:= Length(slovo);
h:= round(a/b);
slovo2:= "";
 for c:=1 to h do
  slovo2:= slovo2 + slovo;
  slovo2:= copy(slovo2, 1, a);
  slovo:= slovo2;
    for c:= 1 to a do
     begin
      if (ord(txt[c])+ ord(slovo[c]))> 255 then
        otv.Text:= otv.text+ chr(ord(txt[c]) + ord(slovo[c])-255)
      else
        otv.Text:= otv.text+ chr(ord(txt[c]) + ord(slovo[c])) ;
     end;
Result:= otv.Text;
end;

Вот ее вызов:
memo1.Text:=Shifrator("P", edit1.Text);


 
Anatoly Podgoretsky ©   (2011-12-11 17:11) [1]

> tj.nelson  (11.12.2011 16:49:00)  [0]

Почему ты думаешь, что после шифровации строка останется строкой. Конечно
если это не код Цезаря или подобный.


 
tj.nelson   (2011-12-11 17:17) [2]


> Почему ты думаешь, что после шифровации строка останется
> строкой. Конечно
> если это не код Цезаря или подобный.

Извиняюсь, но почему-то после КАЖДОГО символа идет переход на следующую строку. Если я использую вместо StringList"а Memo1 и Memo2(в процедуре, а не в функции) то таких проблем нет. Но меня не устраивает постоянное использование одного и того же кода, по 10 раз в программе.....
Надо именно функцию, а следовательно StringList...


 
tj.nelson   (2011-12-11 17:25) [3]

При дешифрации, после каждого нужного(правильного) символа, идут 2 символа(конец строки и перевод каретки)....помогите определить ошибку в написанной выше функции.....


 
Dennis I. Komarov ©   (2011-12-11 17:28) [4]

Где такой чудо алгоритм выискал? И зачем?
По-XOR-ь байты и хорош...


 
Anatoly Podgoretsky ©   (2011-12-11 18:10) [5]

> tj.nelson  (11.12.2011 17:25:03)  [3]

Пока это твои фантазии ничем не подкрепленые.


 
tj.nelson   (2011-12-11 18:24) [6]


> Пока это твои фантазии ничем не подкрепленые.

а что тебе мешает проверить эту функцию у себя? Правильно, ничего...

А оказалось все дело в otv.Text.
Попробовал вместо  otv.Text поставить result функции, все нормально работает...


 
Anatoly Podgoretsky ©   (2011-12-11 18:26) [7]

> tj.nelson  (11.12.2011 18:24:06)  [6]

Зачем мне это делать?


 
tj.nelson   (2011-12-11 18:48) [8]


> Зачем мне это делать?

Чтобы убедится.... Я предоставил саму функцию и вызов ее, а также описал ее неправильные выводы...
И вместо помощи, мне говорят, что это мои фантазии, и функция работает нормально...интересно..

Вот поэтому, если тебе не достаточно того что я здесь написал, или не веришь мне то попробуй ее сам испробовать....


 
Inovet ©   (2011-12-11 19:17) [9]

> [6] tj.nelson   (11.12.11 18:24)
> А оказалось все дело в otv.Text.
> Попробовал вместо  otv.Text поставить result функции, все
> нормально работает...

> [0] tj.nelson   (11.12.11 16:49)
> otv.Text:= otv.text+

TStrings.Text
Lists the strings in the TStrings object as a single string with the individual strings delimited by carriage returns and line feeds.



Страницы: 1 вся ветка

Текущий архив: 2012.04.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
15-1323954680
jacksotnik
2011-12-15 17:11
2012.04.15
Скопировать данные с одной таблицы в другую


15-1323757703
OW
2011-12-13 10:28
2012.04.15
Вопрос по EurekaLog. В процедуру перехвата заходит 2раза, почему?


2-1324407105
Gu
2011-12-20 22:51
2012.04.15
юникод


15-1323763792
Dennis I. Komarov
2011-12-13 12:09
2012.04.15
WinXP без GUI...


2-1324669937
Drowsy
2011-12-23 23:52
2012.04.15
FireBird 2.5, IBExpert. Ver. 2011.03.04