- 1
- 2
- 3
- 4
- 5
- 6
for (i = 0; i < 3; i++) {
if (smth) {
blnCardValue = true;
i = 4;
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−86
for (i = 0; i < 3; i++) {
if (smth) {
blnCardValue = true;
i = 4;
}
}
клевый способ выйти из цикла
+73
ICQ::logInIcq( )
{
TLV clid1,clid,clm,clmin,clless,clbild,cldistr,cllang,clcontr,t1;
WSA ws;
int packn;
unsigned char st1[40];
port=ControlIcqPropert.portIcqServer;
host=(char*)ControlIcqPropert.IcqServer;
if((strlen(host)==0)|(port==0))
{
port=DEFAULT_SERVER_PORT;
host=DEFAULT_SERVER_HOST;
}
if(strlen(password)<3) return 0;
pn=sock.Connect( host,port );
packn=sock.Receive( ( char * )uc,sizeof( uc ),0,0 );
if( packn <= 0 ){return 1;}
//SetIndic(10);
tUin.type=0x0100;
tUin.lenght[0]=0x00;//htons( ( BYTE )strlen( uin ) );
tUin.lenght[1]=strlen(uin);
memcpy( tUin.data,uin,strlen( uin ) );
flap.chan_id=0x01;
flap.Sequence+=0x0100;
flap.datalenght[0]=0x00;
flap.datalenght[1]=0x04;
flap.data[0]=0x00;
flap.data[1]=0x00;
flap.data[2]=0x00;
flap.data[3]=0x01;
packn=sock.Send( ( const char * )&flap,10,0 );
flap.Sequence+=0x0100;
flap.chan_id=0x02;
t1.type=0x1700;
t1.lenght[0]=0x00;
t1.lenght[1]=0x06;
t1.data[0]=0x00;
t1.data[1]=0x00;
t1.data[2]=0x00;
t1.data[3]=0x00;
t1.data[4]=0x00;
t1.data[5]=0x00;
int lnum=0;
lnum+=10;
memcpy( &st1,&t1,lnum );
memcpy( &st1[lnum],&tUin,strlen(uin)+4 );
lnum+=strlen(uin)+4;
unsigned char u1[4];
u1[0]=0x00;
u1[1]=0x4B;
u1[2]=0x00;
u1[3]=0x00;
memcpy( &st1[lnum],&u1,4 );
lnum+=4;
memcpy( flap.data,&st1,lnum );
flap.datalenght[0]=0x00;
flap.datalenght[1]=0x1B;
lnum+=6;
packn=sock.Send( ( char * )&flap,lnum,0 );
//memcpy( &flap,NULL,4096 );
packn=sock.Receive( ( char * )&inflap,sizeof( inflap ),0 );
memcpy( &uc,&inflap,packn );
memcpy( &snac,&uc[6],packn-6 );
memcpy( key,&snac.data[2],snac.data[1] );
int ii;
MD5_CTX Md5Ctx;
HASH hash;
MD5Init ( &Md5Ctx );
MD5Update( &Md5Ctx, ( unsigned char* )password, strlen( password ) );
MD5Final ( ( uchar* )hash, &Md5Ctx );
MD5Init ( &Md5Ctx );
MD5Update( &Md5Ctx, ( unsigned char* )key, snac.data[1] );
MD5Update( &Md5Ctx, ( unsigned char* )hash, 16 );
MD5Update( &Md5Ctx, ( unsigned char* )AIM_MD5_STRING, strlen( AIM_MD5_STRING ) );
MD5Final ( ( uchar* )hash, &Md5Ctx );
flap.chan_id=0x02;
flap.Sequence+=0x0100;
flap.datalenght[0]=0x00;
flap.datalenght[1]=0x72;
t1.lenght[0]=0x00; //Not Lenght!!! it is SNAC!!!
t1.lenght[1]=0x02;
memcpy( uc,&t1,10 );
memcpy( &uc[10],&tUin,13 );
TLV auth_h;
auth_h.type=0x2500;
auth_h.lenght[0]=0x00;
auth_h.lenght[1]=0x10;
memcpy( &auth_h.data,&hash,16 );
memcpy( &uc[23],&auth_h,20 );
uc[43]=0x00;
uc[44]=0x4c;
uc[45]=0x00;
uc[46]=0x00;
clid1.type=0x0300;
Много лет назад, будучи молодым программером писал абсолютное гавно. Была поставлена задача реализовать протокол оскар 11 в одной бухгалтерской системе. Полное отсутствие архитектуры приложения, бизнес-слоя. В общем мне тогда сказали что так писать не надо и с треском выгнали. После этого так перестал писать :-)
+87
float Chislo(char *a, int i)
{
int j=i;
int k=0;
int r;
float chis=0;
while (a[j-1]!=' ' && a[j-1]!='>' && a[j-1]!='-' && a[j-1]!='+' && a[j-1]!='(')
{j--;
//тут перегоняем символ a[j] в цифру r
if (int(a[j]==48)) r=0;
else if (int(a[j]==49)) r=1;
else if (int(a[j]==50)) r=2;
else if (int(a[j]==51)) r=3;
else if (int(a[j]==52)) r=4;
else if (int(a[j]==53)) r=5;
else if (int(a[j]==54)) r=6;
else if (int(a[j]==55)) r=7;
else if (int(a[j]==56)) r=8;
else if (int(a[j]==57)) r=9;
else goto lab8;
//ShowMessage(a[j]);
chis=chis + r*pow(10,k);
k++;
};
//j--; //дальше надо обратно до точки и дольше до пробела
while (a[j]!='.')
{if (a[j]==' ' || a[j]==':') goto lab8;
j++;
};
j++;
r=0;
k=-1;
k--;
j++;
};
lab8:
return chis;
}
// была еще и похощая функция возвращающая результат в виде AnsiString
// вот сколько переменных понадобивлось автору в более чем 700-строчной процедуре
void Progon()
{
//
AnsiString TempR1, TempR2, TempR3, Com,Sport,Team1,Team2, Team, URL1, URL2, page,Champ,Date;
AnsiString day, month, year, Res, temp, otdyh1, otdyh2;
int dat;
//TempR1 = NMHTTP1->Body;
float tot,TM,TB,bol1,bol2,srbol,ver,value,proc;
AnsiString totS,f1S,ind1S,ind2S, f1ch1S, t_ch1S, f1ch2S, t_ch2S, f1ch3S, t_ch3S, f1ch4S, t_ch4S;
float fora1,ind1,ind2, f1ch1, t_ch1, f1ch2, t_ch2, f1ch3, t_ch3, f1ch4, t_ch4;
AnsiString Score1, Score2, s1ch1S, s2ch1S, s1ch2S, s2ch2S, s1ch3S, s2ch3S, s1ch4S, s2ch4S;
AnsiString FIO, ScoreS, RebS, AstS, MinS, Amplua, BlkS, StlS;
AnsiString TotalS, RebBookS, AstBookS, StlBookS, BlkBookS;
float Total, RebBook, AstBook, BlkBook, StlBook;
float PtssNRebsBook, PtssNAstsBook, RebsNAstsBook, PtssNRebsNAstsBook, Book3ptTeam1, Book3ptTeam2;
int Score, count;
int str1, str2, ind, indd, ig_pos;
bool win;
// В коде куча такого
while (bukva2[i2]!='/') i2++;
i2++;
while (bukva2[i2]!='/') i2++;
i2++;
while (bukva2[i2]!='/') i2++; // // обошли stl
int *Ptss;
Ptss = new int[count];
int *Rebs;
Rebs = new int[count];
int *Asts;
Asts = new int[count];
int *Blks;
while ( ! ( ((bukva[i]=='H') &&(bukva[i+1]=='o') && (bukva[i+2]=='m') && (bukva[i+3]=='e')) || ((bukva[i]=='R') &&(bukva[i+1]=='o') && (bukva[i+2]=='a') && (bukva[i+3]=='d')))) i--;
while (bukva[i]!='a') i--;
while ((bukva[i-1]!='>') && (bukva[i-1]!=' ')) i--;
// Внутри циклов всюду работа с экселем
else
{Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+14).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+15).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
};
Как -то по фрилансу заказчик хотел доработать то ли парсер, то ли еще что-то (по предоставленным исходникам я так и не смог понять что это за прога, названная "Автониггер" и написанная каким -то студентом толи специально ради выноса мозгов, то ли по еще каким-то причинам вышеобозначенными выкладками, которые вполне возможно содержат в себе какойто гипнотический смысл).
+97
/// До этой строчки еще больше 1000 строк кода (И это всё в ОДНОЙ процедур)
finally
if Main.RecordCount > 0
then Main.First;
Main.EnableControls;
Panel2.Color:=clLime;
lbTimeSpend.Caption:='Âðåìÿ çàòðà÷åíî:'+TimeToStr(time()-TimeWork);
end;
Exit;
try
if TmpCollect_Skd.IsSelectAll then
begin
Askd_count := TmpCollect_Skd.RxDBGrid1.DataSource.DataSet.RecordCount;
end
/// После этой строки еще более 1000 строк кода всё в этой же процедуре!
Продолжим. Вот так люди используют Exit;
+101
if IntToStr(n) = '2' then begin
/// Еще куча говнокода
end;
Устроился я тут работать в одну компанию... Начинаю серию публикаций... Название компании пока не буду озвучивать - еще уволят нах...
Начнём с чего-нибудь простенького :)
+67
public boolean isActive() {
return !isKilling() && !isKilled() && !isKillPending();
}
Made in Estonia (part 2)
+77
private final List<ItemInfo> _items = Collections.synchronizedList(new Vector<ItemInfo>());
Пример убер-синхронизации (чтоб наверняка).
Используется и по сей день.
Кусок из крупного эмулятора сервера L2 (Потомок сборки L2Rebellion).
+144
if if = then then
then = else;
else else = if;
Следующий фрагмент вполне допустим при программировании на PL/1, но написать такое может только идиот со справкой. "Совершенный код" (c)
+171
function showResults()
{var i=0;if(document.getElementById('choice12').checked==true)
{i++;}
if(document.getElementById('choice23').checked==true)
{i++;}
if((document.getElementById('choice31').checked==true)&&(document.getElementById('choice32').checked==false)&&(document.getElementById('choice33').checked==true)&&(document.getElementById('choice34').checked==false))
{i++;}
if((document.getElementById('choice41').checked==false)&&(document.getElementById('choice42').checked==true)&&(document.getElementById('choice43').checked==true)&&(document.getElementById('choice44').checked==false))
{i++;}
if(document.getElementById('text5').value=='type')
{i++;}
if(document.getElementById('choice62').checked==true)
{i++;}
if(document.getElementById('text7').value=='alt')
{i++;}
if((document.getElementById('choice81').checked==false)&&(document.getElementById('choice82').checked==true)&&(document.getElementById('choice83').checked==false)&&(document.getElementById('choice84').checked==true))
{i++;}
if(document.getElementById('text9').value=='target')
{i++;}
if((document.getElementById('choice101').checked==true)&&(document.getElementById('choice102').checked==false)&&(document.getElementById('choice103').checked==false)&&(document.getElementById('choice104').checked==true))
{i++;}
if(document.getElementById('text11').value=='<input>')
{i++;}
if(document.getElementById('choice123').checked==true)
{i++;}
if((document.getElementById('choice131').checked==false)&&(document.getElementById('choice132').checked==true)&&(document.getElementById('choice133').checked==false)&&(document.getElementById('choice134').checked==true))
{i++;}
if(document.getElementById('text14').value=='action')
{i++;}
if((document.getElementById('choice151').checked==false)&&(document.getElementById('choice152').checked==true)&&(document.getElementById('choice153').checked==true)&&(document.getElementById('choice154').checked==true))
{i++;}
if((document.getElementById('choice161').checked==false)&&(document.getElementById('choice162').checked==false)&&(document.getElementById('choice163').checked==true)&&(document.getElementById('choice164').checked==true))
{i++;}
if(document.getElementById('choice174').checked==true)
{i++;}
if(document.getElementById('choice182').checked==true)
{i++;}
if(document.getElementById('text19').value=='background')
{i++;}
if(document.getElementById('choice201').checked==true)
{i++;}
document.getElementById('questions').style.display='none';document.getElementById('results').style.display='block';document.getElementById('results').innerHTML='<h2 style="color: #377">Результаты теста</h2>\n<p>Количество правильных ответов: <strong>'+i+'</strong>.</p>';if(i>=18)
{document.getElementById('results').innerHTML+='<p style="color: #096">Поздравляем с отличным результатом!</p>\n<p style="color: #f00">Оценка 5</p>';}
if((i<18)&&(i>=14))
{document.getElementById('results').innerHTML+='<p style="color: #096">Поздравляем с хорошим результатом!</p>\n<p style="color: #f00">Оценка 4</p>';}
if((i<14)&&(i>=6))
{document.getElementById('results').innerHTML+='<p style="color: #096">Результат удовлетворительный!</p>\n<p style="color: #f00">Оценка 3</p>';}
if(i<=6)
{document.getElementById('results').innerHTML+='<p style="color: #c00">К сожалению, результат очень плохой!!!</p>\n<p style="color: #f00">Оценка 2</p>';}
document.getElementById('results').innerHTML+='<p class="buttons"> <input type="button" value="Подсказать ответы" onclick= "showQuestions();getHelp();" /></p>';}
Тест на знание html. Мало того, что говнокод, так там и ответы ещё неправильные. Источник — http://www.cssblok.ru/test/test1.html
P.S. копирайт снизу на том сайте ("Школьная веб-студия , 2007") всё оправдывает.
+166
//выяснение адреса сайта
define( "SITE_URL", "http://" . str_replace( "-", "-", preg_replace('#^(.*)/[^/]*#', '\\1', $_SERVER['HTTP_HOST']).'/admin/' ) );
define( "SITE_EDIT_URL", str_replace( "-", "-", preg_replace('#^(.*)/[^/]*#', '\\1', $_SERVER['HTTP_HOST']) ) ); //.$_SERVER['REQUEST_URI'])."/" ) );
define( "SITE_EDIT_URL_HTTP", "http://" . str_replace( "-", "-", preg_replace('#^(.*)/[^/]*#', '\\1', $_SERVER['HTTP_HOST'])."/" ) ); //.$_SERVER['REQUEST_URI'])."/" ) );