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

Вниз

Delphi to PHP   Найти похожие ветки 

 
Новичокк   (2005-07-16 20:37) [0]

Помогите перевести функцию с Delphi на PHP:

function GetCharKey(UserID,CharName:string):string;
var
i:integer;
begin
if Length(CharName)<7 then SetLength(CharName,7);
if Length(CharName)<7 then for i:=Length(CharName)+1 to 7 do CharName:=CharName+CharName[1];
for i:=1 to 7 do Result:=Result+IntToStr(abs(StrToInt(UserID[i])-(Ord(CharName[i]) mod 10)));
end;


Пример обращения:
GetCharKey("3910543","Hint");

У меня с PHP туго =( Пишу только со справочником постоянно смотря примеры =)


 
Knight ©   (2005-07-16 20:40) [1]


> Новичокк   (16.07.05 20:37)
> У меня с PHP туго =( Пишу только со справочником постоянно
> смотря примеры =)

А все так пишут... кроме тех кто зарабатывает на этом деле :)


 
desam   (2005-07-17 01:52) [2]

Я тут написал тебе, может так?

<?php
class DelphiToPHP {
 
 function GetSymbol ($str,$num) {
   // получаем символ по его номеру в строке
   return substr($str,$num-1,1);
 }
 
 function GetCharKey ($userID,$CharName) {
   // сама функция
   if (strlen($CharName) < 7) {
      for ($i = strlen($CharName); $i <= 7; $i++) {
        $CharName .= $this->GetSymbol($CharName,1);
      }
     
      for ($i = 1; $i <= 7; $i++) {
        $toret .= abs($this->GetSymbol($userID,$i)) - ord($this->GetSymbol($CharName,$i) % 10);
      }
   }
   
   return $toret;
 
 }
}

// пример использования
$d = new DelphiToPHP;
print $d->GetCharKey("3910543","Hint");
?>


 
Новичокк   (2005-07-17 11:07) [3]

Большое спасибо. Приду домой - проверю.


 
Новичокк   (2005-07-17 12:43) [4]

Не работает :(
Результат такой:
-45-39-47-48-43-44-45
Хотя должен быть такой:
1416543


 
desam ©   (2005-07-18 00:54) [5]

To Новичокк  

Сейчас посмотрю. Попробую исправить? А для чего эта функция нужна?


 
desam ©   (2005-07-18 01:40) [6]

Всё, сделал. Вроде правильно.

<?php
class DelphiToPHP {
 
 function GetSymbol ($str,$num) {
   // получаем символ по его номеру в строке
   return substr($str,$num-1,1);
 }
 
 function GetCharKey ($userID,$CharName) {
   // сама функция
   if (strlen($CharName) < 7) {
      for ($i = strlen($CharName)+1; $i <= 7; $i++) {
        $CharName .= $this->GetSymbol($CharName,$i);
      }
     
      for ($i = 1; $i <= 7; $i++) {

        $toret .= abs($this->GetSymbol($userID,$i) - (Ord($this->GetSymbol($CharName,$i) ) % 10));
      }
   }
   
   return $toret;

 }
}

$d = new DelphiToPHP;
print $d->GetCharKey("3910543","Hint");
?>


 
desam ©   (2005-07-18 16:25) [7]

Ну что, работает?


 
desam ©   (2005-07-18 16:25) [8]

Ну что, работает правильно?



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

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

Наверх




Память: 0.49 MB
Время: 0.041 c
1-1121677818
Руслана
2005-07-18 13:10
2005.08.07
Как получить имя узла по которому щелкнули в TreeView?


1-1121944216
Profik
2005-07-21 15:10
2005.08.07
Обработка нажатия стандартной кнопки Свернуть


10-1098882668
DCOM
2004-10-27 17:11
2005.08.07
Доступ к СОМ


1-1121778080
Shooroop
2005-07-19 17:01
2005.08.07
Как определить из какого пункта меню запущена форма?


14-1121339167
alex-drob
2005-07-14 15:06
2005.08.07
Delphi 2005 не могу скомпилировать