- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
function Dec2Hex V =
(
local H
if V == 0 then H = "00"
else if V == 1 then H = "01"
else if V == 2 then H = "02"
/* и так далее до 253 */
else if V == 254 then H = "FE"
else if V == 255 then H = "FF"
)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+61
function Dec2Hex V =
(
local H
if V == 0 then H = "00"
else if V == 1 then H = "01"
else if V == 2 then H = "02"
/* и так далее до 253 */
else if V == 254 then H = "FE"
else if V == 255 then H = "FF"
)
Очень плохой, индусский способ реализации Decimal to Hex конверсии.
+174.3
function _start() {
var $p = $("input#text-f").val();
if (($p == 'undefined')||($p == '')||($p.length != 10))
return false;
$("#callsexample").animate({height: "hide", opacity: "0"}, "fast")
$("#demoexample").animate({height: "show", opacity: "0"}, "low", function(){
$("#close").html('<a href="">Инициализация</a>');
for (i=1; i<15; i++)
$("#res"+i).html('');
$("#demoexample").animate({height: "hide", opacity: "0"}, "fast", function(){
$("#provider").load("/info?a=p&p="+$("select#pref-code").val()+$("input#text-f").val());
$("#region").load("/info?a=r&p="+$("select#pref-code").val()+$("input#text-f").val());
$("#status").load("/info?a=s&p="+$("select#pref-code").val()+$("input#text-f").val());
setTimeout(function(){
$("#close").html('<a href="">Определение оператора абонента</a>');
$("#res1").html('Определение оператора абонента');
setTimeout(function(){
$("#close").html('<a href="">Получение сервисных параметров</a>');
$("#res3").html('Получение сервисных параметров');
$("#res2").html('OK');
setTimeout(function(){
$("#close").html('<a href="">Запуск эмулятора устройства GSM</a>');
$("#res5").html('Запуск эмулятора устройства GSM');
$("#res4").html('OK');
setTimeout(function(){
$("#close").html('<a href="">Формирование запроса</a>');
$("#res7").html('Формирование запроса');
$("#res6").html('OK');
setTimeout(function(){
$("#close").html('<a href="">Отправка запроса оператору</a>');
$("#res9").html('Отправка запроса оператору');
$("#res8").html('OK');
setTimeout(function(){
$("#close").html('<a href="">Получение списка SMS</a>');
$("#res11").html('Получение списка SMS');
$("#res10").html('OK');
setTimeout(function(){
$("#close").html('<a href="">Получение списка звонков</a>');
$("#res13").html('Получение списка звонков');
$("#res12").html('OK');
setTimeout(function(){
$("#close").html('<a href="">Завершение соединения</a>');
$("#res14").html('OK');
setTimeout(function(){
$("#demoresult").animate({height: 200, opacity: "1"}, "low", function(){});
$("#demosearch").animate({height: "hide", opacity: "0"}, "low");
$("#demoexample").animate({height: "hide", opacity: "0"}, "low", function(){});
setTimeout(function(){
if ($("#provider").html() == 'ERROR') {
$("#demoresult").animate({height: "hide", opacity: "0"}, "fast");
$("#demosearch").animate({height: "hide", opacity: "0"}, "fast");
$("#demoexample").animate({height: "show", opacity: "1"}, "fast");
$("#close").html('<a href="">Получение данных невозможно</a>');
} else {
$("#demosearch").animate({height: "hide", opacity: "0"}, "low");
$("#demoresult").animate({height: "show", opacity: "1"}, "low");
$("#close").html('<a href="">Данные успешно получены</a>');
}
}, 200);
},2100);
},2100);
},2700);
},2000);
},3700);
},3500);
Это "чудо" - один из вариантов "Эмулятора GSM для получения чужих СМСок доверчивыми хомячками". "Назначение" этого... кхм... высера, доставляет не хуже способа реализации...
Использует jQuery
+123.9
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
...
private function someFunction(event:Event):void {
progressBar.setProgress(0, 0);
PopUpManager.addPopUp(progressBar, cameraView, true);
PopUpManager.centerPopUp(progressBar);
}
private function updateProgress(event:ProgressEvent):void {
progressBar.setProgress(event.bytesLoaded, event.bytesTotal);
}
]]>
</mx:Script>
<!--
Опытным путем удалось установить, что бегущая полоска в ProgressBar
отображается в PopupManager только тогда, когда у него есть
предок с borderStyle="solid", иначе прогресс просто стоит!
-->
<mx:Canvas borderStyle="solid" visible="false">
<mx:ProgressBar id="progressBar" label="complete %3%%" labelPlacement="center" mode="manual" x="20" y="10"></mx:ProgressBar>
</mx:Canvas>
</mx:Application>
adobe flex 3
разгребал это два дня!
−111.2
# куски кода выдернуты
# смотрите внимательно на SQL
#--- INSERT ------
my $comment_id = $ej->{dbh}->insert('blog.comments', (
'id::primary' => '',
'post_id::numeric' => $param_id,
'user_id::numeric' => $ej->{user}{id},
'text' => $newmess,
'time::numeric' => $ej->{time},
'rating_ball::numeric' => $rating_ball
));
my $_rating_ball = 0 + $ej->Query ('SELECT SUM(rating_ball) FROM blog.comments WHERE post_id = '.$param_id)->FetchRow;
$ej->Query(
'UPDATE blog.posts SET update_time = '.$ej->{time}.', rating_ball = '.$_rating_ball.', '.
'comments_ptr = CONCAT('.Q(pack('L', $comment_id)).', comments_ptr) WHERE id = '.$param_id
);
#--- DELETE ---
$ej->Query('DELETE FROM blog.comments WHERE id = '.$comment_id);
my $comments_ptr = pack('L*', $ej->Query('SELECT id FROM blog.comments WHERE post_id = '.$post_id.' ORDER BY time DESC')->FetchCol);
my $_rating_ball = 0 + $ej->Query ('SELECT SUM(rating_ball) FROM blog.comments WHERE post_id = '.$post_id)->FetchRow;
$ej->Query('UPDATE blog.posts SET comments_ptr = '.Q($comments_ptr).', rating_ball = '.$_rating_ball.' WHERE id = '.$post_id);
#--- SELECT ----
my %q = $ej->Query('SELECT user_id, topic_id, name, text, SUBSTRING(comments_ptr, '.(1+($page-1)*40).',40) AS ptr, round(length(comments_ptr) / 4) AS cnt, create_time, pics_ptr, rating_ball FROM blog.posts WHERE id = '.$param_id)->FetchHash;
my @id = (); my @user_id = (); my @text = (); my @time = ();
if ($q{ptr} ne '') {
my $r = $ej->Query('SELECT id, user_id, text, time FROM blog.comments WHERE id IN ('.join(',',unpack('L*', $q{ptr})).') ORDER BY time DESC');
@id = $r->FetchCol;
@user_id = $r->FetchCol(1);
@text = $r->FetchCol(2);
@time = $r->FetchCol(3);
}
# потом еще вывод через Ж
это работает на mySQL/PERL.
да зачем нам реляционная база, мы сами можем манипулировать отношениями.
comments_ptr это BLOB, c упакованным в него массивом int32 id'шников из comments.id
хотя и есть comments.post_id <=> posts.id
просто праздник какой-то!
+126
<div id="t21">
<div id="first">
<table>
<tbody>
<tr><td><noindex><a href="..."><img alt="%AAA%" src="/i/l/belbal.gif"></a></noindex></td></tr>
</tbody>
</table>
</div>
<div class="p"><img src="/i/vert2.gif"></div>
<div>
<table>
<tbody>
<tr><td><noindex><a href="..."><img alt="%AAA%" src="/i/l/anagram.gif"></a></noindex></td></tr>
</tbody>
</table>
</div>
<div class="p"><img src="/i/vert2.gif"></div>
<div>
<table>
<tbody>
<tr><td><noindex><img width="72" height="28" alt="%AAA%" src="/company/about/PFLogo.jpg"><a href="..."></a></noindex></td></tr>
</tbody>
</table>
</div>
<div class="p"><img src="/i/vert2.gif"></div>
<div>
<table>
<tbody>
<tr><td><noindex><a href="..."><img alt="%AAA%" src="/i/l/zibi.gif"></a></noindex></td></tr>
</tbody>
</table>
</div>
<div class="p"><img src="/i/vert2.gif"></div>
<div>
<table>
<tbody>
<tr><td><noindex><a href="..."><img alt="%" src="/i/l/gesus.gif"></a></noindex></td></tr>
</tbody>
</table>
</div>
<div class="p"><img src="/i/vert2.gif"></div>
<!-- И в таком вот духе ещё несколько 50 строк кода -->
Исходник с сайта-конкурента, откуда срочно понадобилось стырить эту часть. Лучше перепишу сам
+161.3
$login['name'] = stripslashes(strip_tags(trim(htmlspecialchars($login['name']))));
$login['live'] = stripslashes(strip_tags(trim(htmlspecialchars($login['live']))));
$login['mobile'] = stripslashes(strip_tags(trim(htmlspecialchars($login['mobile']))));
$login['operator'] = stripslashes(strip_tags(trim(htmlspecialchars($login['operator']))));
$login['email'] = stripslashes(strip_tags(trim(htmlspecialchars($login['email']))));
$login['about'] = stripslashes(strip_tags(trim(htmlspecialchars($login['about']))));
$data['photo'] = stripslashes(strip_tags(trim(htmlspecialchars($data['photo']))));
$login['wapsite'] = stripslashes(strip_tags(trim(htmlspecialchars($login['wapsite']))));
$login['website'] = stripslashes(strip_tags(trim(htmlspecialchars($login['website']))));
$login['emocii'] = stripslashes(strip_tags(trim(htmlspecialchars($login['emocii']))));
if (empty($action)) {
print '
//тут бадяга типа формы входа
} else {
if (isset($_GET['edit'])){
$newpass = $_POST['newpass'];
$name = $_POST['name'];
$live = $_POST['live'];
$sex = $_POST['sex'];
$mobile = $_POST['mobile'];
$email = $_POST['email'];
$wapurl = $_POST['wapurl'];
$uin = $_POST['uin'];
$foto = $_POST['foto'];
$about = $_POST['about'];
$emocii = $_POST['emocii'];
$q="UPDATE `chat_users` SET
`name`='".mysql_real_escape_string(htmlspecialchars($name))."',
`pass`='".mysql_real_escape_string(htmlspecialchars($newpass))."'
`sex`='".mysql_real_escape_string(htmlspecialchars($sex))."',
`bday`='".mysql_real_escape_string(htmlspecialchars($bday))."'
`bmonth`='".mysql_real_escape_string(htmlspecialchars($bmonth))."',
`byear`='".mysql_real_escape_string(htmlspecialchars($byear))."'
`live`='".mysql_real_escape_string(htmlspecialchars($live))."',
`mobile`='".mysql_real_escape_string(htmlspecialchars($mobile))."'
`email`='".mysql_real_escape_string(htmlspecialchars($email))."',
`website`='".mysql_real_escape_string(htmlspecialchars($wapurl))."'
`website`='".mysql_real_escape_string(htmlspecialchars($weburl))."',
`icq`='".mysql_real_escape_string(htmlspecialchars($uin))."'
`photo`='".mysql_real_escape_string(htmlspecialchars($foto))."',
`about`='".mysql_real_escape_string(htmlspecialchars($about))."'
`emocii`='".mysql_real_escape_string(htmlspecialchars($emocii))."'
аффтар не на шутку обезопасился mysql_real_escape_string(htmlspecialchar s(tratata)) и stripslashes(strip_tags(trim(htmlspecial chars(tratata))))
+101.2
procedure TForm1.Timer1Timer(Sender: TObject);
begin
sec:=sec+1;
if sec>59 then begin sec:=0; min:=min+1; end;
if min>59 then begin min:=0; ch:=ch+1; end;
statusbar1.Panels.Items[1].Text:=IntToStr(ch)+':'+IntToStr(min)+':'+IntToStr(sec);
end;
таймер
+127
@ECHO OFF
IF NOT %temp% == %tmp% GOTO both_
GOTO single
:both
DEL %temp%\*.* /F /S /Q
DEL %tmp%\*.* /F /S /Q
CLS
ECHO Deleted all files in the TEMP folder: %temp%
ECHO Deleted all files in the TMP folder: %tmp%
GOTO end
:single
DEL %temp%\*.* /F /S /Q
CLS
ECHO Deleted all files in the TEMP folder: %temp%
:end
Натолкнулся на просторах интернетов
−184.5
override public function toString():String
{
return Object(container).toString() + "." + super.toString();
}
Еще одно украшение Флексового фреймворка: mx.core::Repeater.
Для тех, кто не в курсе: toString() вызываетйса автоматически когда мы пытаемся вывести информацию об объекте в консоль. (Т.е. жизненно необходим для тестирования). Свойство container у репитера радко, но может буть null, но изза того, что флексовые разработчики не категорически никогда не кастуют ничего, то это должно было бы выкинуть исключение, но, конвертация используемая в примере (вместо каста) в силу особенностей языка вместо того чтобы просто умереть с исключением создаст новый динамический объект, врезультате получим что-то типа:
"[Object object].имяКомпонента".
т.е. на самом деле код должен был выглядеть примерно так:
return (this.container ? this.container.toString() + "." : "") + super.toString();
+61.9
//Обьявление класса в хедере с последующей реализацией:
template<class TConstructStrategy>
class TClass
{
public:
TConstructStrategy __ctor;
//...Прочие методы...
};
//...Реализация прочих методов класса...
//================================================================
//Конструктор с переменным числом параметров, типа функтор:
//Тоесть обьявлено где-то в коде проекта и передаётся, как параметр при конструировании.
typedef void TConstract(int a);
template<>
TClass<TConstract>::TClass(int a)
{
//doing...
};
int main(int argc, char* argv[])
{
//...
TClass<TConstract> A(5);
//...
}
Это говнокод, но не результат работы над проектом, а результат насмешек над компилятором MSVC 6.0.
Основано на обявлении типа-функции:
typedef void TConstract(int a);, но тк конструктор не функция - используется внутренее имя конструктора MSVC6.0:
void __ctor(void);, согласно которому он всё-таки функция.
__dtor - "внутренее" имя деструктора, кстати.
Спалить "секретное" имя обычно можно в сообщениях об ошибках c участием этих имён. При входе в конструктор/деструктор через отладчик под дизасемблером(наверное). В стеке вызовов отладчика(наверное). Наверное ещё как-нибудь, например проходом HEX редактора по экзешнику компилятора и прилижащим dll...
Итак для обсуждения (хотя и не собираюсь это использовать):
1)Как ещё, кроме странных пергрузок, представленного выше метода конструктора-функтора, и вызовов типа A.__ctor(); / A.__dtor() это можно использовать?
2)Какие "скрытые" имена конструкторов/деструкторов у других компиляторов? Я пробовал в MSVC6.0. В MSVS 2008 при первом расмотрении "внутреннее" имя другое и сходу не палится.
Для примера приведу метод с "обычным" функтором (на самом деле он не самый обычный):
//Обьявление класса в хедере с последующей реализацией:
template<class TStrategy>
class TClass
{
public:
TStrategy func;
//...Прочие методы...
};
//...Реализация прочих методов класса...
//================================================================
//Функтор:
//Тоесть обьявлено где-то в коде проекта и передаётся, как параметр при конструировании.
typedef void TFunc(void);
template<>
void TClass<TFunc>::func(void)
{
//doing...
};
int main(int argc, char* argv[])
{
//...
TClass<TFunc> A;
A.func();
//...
};