Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2011, 10:13   #21
Crunkordie
Пользователь
 
Регистрация: 18.02.2011
Сообщений: 48
По умолчанию

Столкнулся с такой проблемой.

Имеются следующий код:
Код:
S:='Иванов Иван Иванович 1985 года рождения г. Москва';
showmessage(StringCoder(DecodeBase64(EncodeBase64(StringCoder(s)))));
Результатом является
Код:
Ива~e Ива~ Ивано~eч 1985 ода рeдения . Мо~eа
В чем может быть проблема?

P.S. Embarcadero® Delphi® 2010 Version 14.0.3593.25826
Crunkordie вне форума Ответить с цитированием
Старый 12.05.2011, 10:39   #22
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

проверил.
на Delphi2006 - нет, не подверждаю...

в коде Вы, надеюсь, ничего не меняли?

Думаю, что проблема в том, что строки в вашей Delphi - Unicode....
попробуйте везде, где есть тип String заменить на AnsiString (или даже на ShortString - в данном случае ограничение в 255 символов не очень актуально, всё равно длина имени файла ограничена).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2011, 11:31   #23
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот, измените процедуру StringCoder, вроде бы этого даже достаточно:
Код:
function StringCoder(const s : AnsiString) : AnsiString;
var k, i : integer;
  key, sResult  : AnsiString;
begin
  key := KeyPass;
  sResult := s;
  k := 1;
  for i := 1 to Length(s) do
    begin
      sResult[i] := AnsiChar((ord(sResult[i]) XOR ord(key[k])));
      inc(k);
      if (k>length(key)) then k := 1;
    end;
  StringCoder := sResult
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2011, 13:18   #24
Crunkordie
Пользователь
 
Регистрация: 18.02.2011
Сообщений: 48
Радость

Serge_Bliznykov, Спасибо большое. Даже не знаю как тебя отблагодарить...
Crunkordie вне форума Ответить с цитированием
Старый 12.05.2011, 13:38   #25
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да ладно.
пользуйтесь на здоровье!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодирование Михаил93 Помощь студентам 5 27.02.2011 01:49
Кодирование asil Помощь студентам 1 02.05.2009 20:48
Кодирование. Blizzz Общие вопросы Delphi 5 19.01.2009 18:28
Кодирование Mss_Smith Помощь студентам 3 17.04.2007 14:46