PDA

Просмотр полной версии : Помогите организовать javascript в delphi


seet09
11.02.2010, 14:31
Собственно сабж. есть javascript результат которого записывается в переменную. мне надо чтобы программа коннектилась к серверу и выводила результат переменой в мемо. Помогите пожалуйста! как это организовать ??

nMonkn
11.02.2010, 14:53
Перепиши JS на делфи, в чем проблема?

alexey-m
11.02.2010, 15:43
Выкладывай код

Jingo Bo
11.02.2010, 15:56
Парсишь и к примеру в TWebBrowser или берешь допусим какой нить движок(SpiderMonkey например)

Jingo Bo
11.02.2010, 16:03
Вот архив, в нём портированные модули для SpiderMonkey на делфи. Вещь очень интересная, реализация супер, но там с отладчиком траблы и что бы к своему приложению прикрепить, нужно добавить ещё достаточно большой функционал(реализовать полноценные классы document, window и т.д.)

http://slil.ru/28631277

seet09
11.02.2010, 16:03
вот значит сам скрипт:
<script type="text/javascript">
window.init_dec_hash = function() {
window.decoded_hashes = {};
var dec_hash = function(hash) {
(function(_){window.decoded_hashes[_]=(function(__){var ___=ge?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return geByClass?___:'___';})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);
}
window.decodehash = function(hash) {
dec_hash(hash);
return window.decoded_hashes[hash];
}
}
</script>


я так понял что основная фича в этих строках
(function(_){window.decoded_hashes[_]=(function(__){var ___=ge?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return geByClass?___:'___';})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);

их и надо на дельфи переложить!

seet09
11.02.2010, 16:05
Jingo Bo спасиибо за ответ! буду пытаться!! но там заморочек много очень в этом движке... Проще переписать javascript на дельфи

Jingo Bo
11.02.2010, 16:51
Перевел, переводится как оказалось на раз-два:)
function dec_hash(hash : String) : String;
Var i : Integer;
Begin
result := hash;
Delete(result, 1, Length(result)-5);
hash := result + Copy(hash, 5, Length(hash)-12);
result := '';
for i := 0 to Length(hash)-1 do
result := result + hash[Length(hash)-i];
end;

W!z@rD
11.02.2010, 17:19
вот значит сам скрипт:
<script type="text/javascript">
window.init_dec_hash = function() {
window.decoded_hashes = {};
var dec_hash = function(hash) {
(function(_){window.decoded_hashes[_]=(function(__){var ___=ge?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return geByClass?___:'___';})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);
}
window.decodehash = function(hash) {
dec_hash(hash);
return window.decoded_hashes[hash];
}
}
</script>


я так понял что основная фича в этих строках
(function(_){window.decoded_hashes[_]=(function(__){var ___=ge?'':'___';for(____=0;____<__.length;++____)___+=__.charAt(__.length-____-1);return geByClass?___:'___';})(_.substr(_.length-5)+_.substr(4,_.length-12));})(hash);

их и надо на дельфи переложить!

vkontakte.ru
функция получения хеша используемого при добавлениях в друзья

seet09
11.02.2010, 18:02
да именно он. Мне его расшифровать надобно

Jingo Bo
11.02.2010, 18:24
Эм...а мой выше привёдеённый код не?

Chrome~
11.02.2010, 18:43
Jingo Bo, какую именно строку нужно передать твоей функции, чтобы получить хеш? Приведи пример.

Jingo Bo
11.02.2010, 19:37
function dec_hash(hash : String) : String;
Var i : Integer;
Begin
result := hash;
Delete(result, 1, Length(result)-5);
hash := result + Copy(hash, 5, Length(hash)-12);
result := '';
for i := 0 to Length(hash)-1 do
result := result + hash[Length(hash)-i];
end;
Ещё раз скопипастил, вот пример использования, вам контакт даёт хэш, "69bb2ecc5ab564743f4700fd7", вводите его в функцю и получаете "347465ba5cce27df00" вот и всё. На всякий случай:) ShowMessage(dec_hash('69bb2ecc5ab564743f4700fd7')) ;

seet09
12.02.2010, 08:25
Jingo Bo БОЛЬШОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!!!!! сорь когда я свой пост писал твоего еще не было))) Тему закрываю!