Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
14-1121002318
Piter
2005-07-10 17:31
2005.08.07
Декомпиляция флеша


1-1121884311
UK-AAV
2005-07-20 22:31
2005.08.07
Количество строк


14-1121535493
Piter
2005-07-16 21:38
2005.08.07
Помогите опознать фильм


14-1120473280
АНТИСПАММЕР
2005-07-04 14:34
2005.08.07
Будущее Windows


3-1119858508
Mamed
2005-06-27 11:48
2005.08.07
Report and Unicode





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский