Главная страница
    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
4-1118051080
Андрей Жук
2005-06-06 13:44
2005.08.07
Аналог делфийского Format в WinAPI


1-1121667918
rus9
2005-07-18 10:25
2005.08.07
Управление доступом


3-1119522193
Sirus
2005-06-23 14:23
2005.08.07
Что быстрее? DBF или Firebird?


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


1-1121671079
Лёха
2005-07-18 11:17
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский