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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2013, 18:47   #1
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию Вопрос по StringReplace

Я испльзую данную функцию что бы заменить названия процедур и функций в моём проекте.
Но по ходу работы столкнулся с проблемой. Например есть две функции
Код:
function ConvertSidToStringSid
function SIDToString
После использования своего рода обфускатора, они стали вида
Код:
function Converttest270658Sid
function test270658
Т.е заминилась часть, а не всё название

Код который использую для обфускации
Код:
var
  list, list2: tstringlist;
  i, ii: integer;
  new_str, old_str: string;
begin
  list := tstringlist.Create;
  list2 := tstringlist.Create;
  randomize;
  for i := 0 to listbox1.Items.count - 1 do
  if pos(listbox1.Items[i], memo4.text) = 0 then
    list2.add('test' + inttostr(random(1000000)));

  list.Text := memo1.Text;
  for i := 0 to listbox1.Items.Count - 1 do
    listbox1.Items[i] := stringreplace(listbox1.Items[i], ' ', '', [rfReplaceAll, rfIgnoreCase]);

  for i := 0 to list2.Count - 1 do
    memo4.Lines.add(list2.Strings[i] + '=' + listbox1.Items[i]);

  for i := 2 to list.Count - 1 do
  begin
    for ii := 0 to memo4.lines.Count - 1 do
    begin
      application.ProcessMessages;
      New_str := Copy(memo4.lines[ii], 0, Pos('=', memo4.lines[ii]) - 1);
      Old_str := Copy(memo4.lines[ii], Pos('=', memo4.lines[ii]) + 1, length(memo4.lines[ii]) - Pos('=', memo4.lines[ii]));
      if pos(old_str, memo3.Text) = 0 then
        list.strings[i] := stringreplace(list.Strings[i], Old_str, New_str, [rfReplaceAll, rfIgnoreCase]);
    end;
  end;

  memo1.Text := list.text;
Как сделать так, что бы заменялось, только полное совпадение названия функции
Lauri вне форума Ответить с цитированием
Старый 08.02.2013, 19:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
stringreplace(' '+list.Strings[i]
должно помочь

Р.S. А вообще регулярки тебе в помошь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringReplace Painkiller_13 Общие вопросы Delphi 11 24.12.2012 22:25
Delph/CodeGear/StringReplace замена &_#039; на символ ' AlienNation Общие вопросы Delphi 3 11.09.2011 02:12
StringReplace s1s1s1 Общие вопросы Delphi 12 28.03.2011 16:26
Почему ошибка? [DCC Error] main.pas(99): E2250 There is no overloaded version of 'StringReplace' ... TwiX Общие вопросы Delphi 5 19.11.2009 03:25
Не заменяет StringReplace Alex Cones Общие вопросы Delphi 2 03.09.2009 21:00