Re: Delphi 7 что за хрень?
От: acDev Россия  
Дата: 17.03.12 14:52
Оценка: 2 (1)
Здравствуйте, Figaro, Вы писали:

F>Теперь несколько вопросов:

F>1. Что эта хрень делает?
Преобразует строку. Какая то забавная символьная обфускация)))

F>2. Как понимать ord(AStr[j]) при нулевом j.

Это ошибка. Но ord(AStr[0]) возвратит всегда 0, т.к. в предшествующих 4 байтах не бывает огромных чисел.

F>3. Основное: как это будет выглядеть на C++?

Видимо так:
void Update(PCHAR AStr)
{
  INT      i, j, Len;
  __int64  i64;
  CHAR     ch;  
  Len = lstrlenA(AStr); 
  for (i=1; i<=Len; i++) {
    i64 = i;
    for(j=1; j<=Len; j++) {
      if (j<>i) i64 += (INT)AStr[j-1] * j;
      while (i64 >= Len) {
        i64 -= Len; 
      } 
    }
    j = i64;
    ch = AStr[j-1];
    AStr[j-1] = AStr[i-1];
    AStr[i-1] = ch;    
  }
}

Хотя, вроде, цикл while можно заменить на взятие модуля от Len.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.