Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
4-1118399440
Суслик
2005-06-10 14:30
2005.08.07
Как перебрать все модули процесса


14-1121405345
rentgen
2005-07-15 09:29
2005.08.07
Глюки форума или глюки у меня


14-1121410956
JOB
2005-07-15 11:02
2005.08.07
Вакансия - Проектировщик программного обеспечения


14-1121535997
Cincinnut
2005-07-16 21:46
2005.08.07
The Doors


14-1121153826
БарЛог
2005-07-12 11:37
2005.08.07
Правильно ли дарить подарки так...




   Наверх