Главная страница
    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.041 c
14-1121769907
ЯВ
2005-07-19 14:45
2005.08.07
Небоскреб


4-1118140335
Андрей Жук
2005-06-07 14:32
2005.08.07
Функция, обратная wsprintf


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


3-1120035526
cvg
2005-06-29 12:58
2005.08.07
Как в Desktop е вывести список таблиц?


4-1118032871
Салават
2005-06-06 08:41
2005.08.07
описание файлов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский