- 1
- 2
- 3
- 4
if (request->status().is_success() &&
(request->GetResponseCode() / 100) == 2) {
/* блаблабла */
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+154
if (request->status().is_success() &&
(request->GetResponseCode() / 100) == 2) {
/* блаблабла */
}
Было случайно откопано в исходниках хромиума (http://src.chromium.org/svn/trunk/src/webkit/appcache/appcache_update_job.cc). И первый вопрос который возникает это "Ну вот нахера???".
+162
void Exf2dMW::closeEvent(QCloseEvent* event)
{
int win_num = _winManager->numberOfModellingWindows();
// if more than one modelling windows, just destroy current one:
if (win_num > 1) {
event->accept();
delete this;
}
// if only one window and handle closing model properly, then destroy it:
else {
if( handleCloseModel() ) {
event->accept();
delete this;
delete _winManager;
}
else
event->ignore();
}
}
Еще кусочек говнокода коллеги, я не думал что так можно писать..
+158
#include <iostream.h>
#include <stdlib.h>
#define make(a,b) new a[b];
#define init(a,b) for(int i=0; i<b; i++) a[i]=random(10);
#define MyType int
template<class type>
void sort(type *m,int n)
{
type *m1 = m;
for(int i=0; i<n-1; i++)
{
for(int j=0; j<n-i-1; j++)
{
if (*m1>*(m1+1))
{
MyType temp;
temp=*m1;
*m1=*(m1+1);
*(m1+1)=temp;
}
m1++;
}
m1=m;
}
}
template<class type>
void input(type *m,int num)
{
type *m1=m;
for(int i=0;i<num; i++)
{
cin>>*m1;
m1++;
}
m1=m;
cout << endl;
}
template<class type>
void output(type *m, int n)
{
for(int i=0;i<n; i++)
{
cout << *(m+i)<<" ";
}
}
main()
{
int len;
cout << "Vvedite razmer massiva" << endl;
cin >> len;
MyType *mas1 = make(MyType,len);
input(mas1,len);
//init(mas1,len);
output<MyType>(mas1,len);
sort<MyType>(mas1,len);
cout<<endl;
output<MyType>(mas1,len);
cout<<endl;
system("pause");;
}
Делалось на Borland C++ 5.02 , что прикольно без макроса make , если память выделяется просто в теле, то ревет, что память ниразу не выделена . Делали ее часика в 4 утра к зачету, препод конечно прибалдел от таких раскладов, но покопавшись ничего сам сделать не смог, плюнул на это дело и зачет поставил.
+171
bool BMPTextureLoader::Load (GraphicContent **content, string file_name)
{
int width, height;
int bpp;
unsigned char *pixels;
ifstream file (file_name.c_str());
char temp[4];
long unsigned int data_shift;
//Read BMP identifier (bfType)
file.read(temp,2);
temp[2] = '\0';
if ((temp[0] != 'B') || (temp[1] != 'M'))
{
return false;
}
//Ignore file size and two reserved zero (bfSize, bfReserved1, bfReserved2)
file.ignore(8);
//Read pixel-data shift (bfOffBits)
file.read(temp,4);
data_shift = 0;
for (int i=0; i<4; i++)
{
data_shift += (int)(temp[i]) * pow(256.0,i);
}
if (data_shift < 54)
{
return false;
}
//Ignore information data size (biSize)
file.ignore(4);
//Read image width (biWidth)
file.read(temp,4);
width = 0;
for (int i=0; i<4; i++)
{
width += (int)(temp[i]) * pow(256.0,i);
}
if (width < 0)
{
return false;
}
//Read image height (biHeight)
file.read(temp,4);
height = 0;
for (int i=0; i<4; i++)
height += (int)(temp[i]) * pow(256.0,i);
if (height < 0)
{
return false;
}
//Read mandatory 1 (biPlanes)
file.ignore(2);
//Read bite per pixel (biBitCount)
file.read(temp,2);
int bipp = 0;
bipp += (int)(temp[0]) + (int)(temp[1])*256;
if ((bipp <= 0) || (bipp / 8. != 3))
{
return false;
}
bpp = 3;
//Read compression type (biCompression)
file.read(temp,4);
int c_type = 0;
for (int i=0; i<4; i++)
{
c_type += (int)(temp[i]) * pow(256.0,i);
}
if (c_type != 0)
{
return false;
}
file.close();
file.open(file_name);
file.ignore (data_shift);
//Read pixel data
pixels = new unsigned char[width*height*bpp];
for (int i=height-1; i>=0; i--)
{
for (int j=0; j<width; j++)
{
file.read(reinterpret_cast<char*>(&pixels[i*width*bpp + j*bpp + 2]), 1);
file.read(reinterpret_cast<char*>(&pixels[i*width*bpp + j*bpp + 1]), 1);
file.read(reinterpret_cast<char*>(&pixels[i*width*bpp + j*bpp]), 1);
}
}
//Create texture
Terminal terminal;
Считываю BMP файл. Размеры, количество бит на пиксель и тип сжатия считываются нормально. Бит на пиксель 24, сжатия нет(0). Дальше я переоткрываю файл и отступаю нужное кол-во пикселей (смещение данных). После этого считываю данные о цветах пикселей. С рисунками нарисованными непосредственно мной всё проходит нормально. Но с картинками взятыми из интернета происходит сбой. После определённого пикселя считывание прекращается. По дебагу получается что при достижение этого пикселя наступает конец файла. Пробовал вырезать куски изображения из нета и переносить в свой файл. Одни куски переносятся и всё нормально, другие обрывают считывание. Наблюдал эту проблему у нескольких рисунков. Возможно кто-то сталкивался с такой проблемой?
Источник: http://www.gamedev.ru/code/forum/?id=144831
+177
enum
{
QUEST_5727 = 5727,
QUEST_6566 = 6566,
};
+171
void Cryptogram(const vector<string> &vector1, vector<string> &vector2)
{
string word;
char new_letter;
long i, j, wordSize, vecSize, vecSize2;
vecSize = vector1.size();
for(j=0; j<vecSize; j++)
{
word = vector1[j];
//cout<<word<<endl;
wordSize = word.size();
cout<<wordSize<<endl;
for(i=0; i<wordSize; i++)
{
new_letter = word[i];
cout<<"& " << new_letter<< " " << isalpha(new_letter) << endl;
if(isalpha(new_letter)==true)
{
if(isupper(new_letter)==true)
{
if (new_letter == 'A')
new_letter = 'W';
else if(new_letter == 'B')
new_letter = 'Y';
else if(new_letter == 'C')
new_letter = 'I';
else if(new_letter == 'D')
new_letter = 'J';
else if(new_letter == 'E')
new_letter = 'K';
else if(new_letter == 'F')
new_letter = 'C';
else if(new_letter == 'G')
new_letter = 'U';
else if(new_letter == 'H')
new_letter = 'V';
else if(new_letter == 'I')
new_letter = 'D';
else if(new_letter == 'J')
new_letter = 'P';
else if(new_letter == 'K')
new_letter = 'Q';
else if(new_letter == 'L')
new_letter = 'L';
else if(new_letter == 'M')
new_letter = 'Z';
else if(new_letter == 'N')
new_letter = 'H';
else if(new_letter == 'O')
new_letter = 'T';
else if(new_letter == 'P')
new_letter = 'G';
else if(new_letter == 'Q')
new_letter = 'A';
else if(new_letter == 'R')
new_letter = 'B';
else if(new_letter == 'S')
new_letter = 'M';
else if(new_letter == 'T')
new_letter = 'X';
else if(new_letter == 'U')
new_letter = 'E';
else if(new_letter == 'V')
new_letter = 'F';
else if(new_letter == 'W')
new_letter = 'O';
else if(new_letter == 'X')
new_letter = 'N';
else if(new_letter == 'Y')
new_letter = 'R';
else if(new_letter == 'Z')
new_letter = 'S';
}
Cryptogram function, it's much longer, with 26 if statements if the letter is lowercase.
+162
int main () {
char bStr[] = "<H1>",
eStr[] = "</H1>",
ifName[] = "E:\\dostat.txt";
ifstream ifst;
int i;
ifst.open(ifName);
if(!ifst)
exit(-1);
for(;!ifst.eof();){
for(i=0;!ifst.eof()&&ifst.get()==bStr[i];i++);
ifst.unget();
if(!bStr[i]){
for(;;){
for(i=0;!ifst.eof()&&ifst.get()==eStr[i];i++);
if(!eStr[i])
break;
for(;i>=0;i--)
ifst.unget();
cout<<(char)ifst.get();
}
cout<<endl<<"--------------------------------"<<endl;
}
else
ifst.get();
}
cin.get();
return 0;
}
+166
bool ok = false;
// инициализируем WinInet
HINTERNET hInternet =
::InternetOpen(
TEXT("WinInet Test"),
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,NULL,
0);
if (hInternet != NULL) {
// открываем HTTP сессию
HINTERNET hConnect =
::InternetConnect(
hInternet,
TEXT(URL),
INTERNET_DEFAULT_HTTP_PORT,
NULL,NULL,
INTERNET_SERVICE_HTTP,
0,
1u);
if (hConnect != NULL) {
// открываем запрос
HINTERNET hRequest =
::HttpOpenRequest(
hConnect,
TEXT("GET"),
TEXT(DOC),
NULL,
NULL,
0,
INTERNET_FLAG_KEEP_CONNECTION,
1);
if (hRequest != NULL) {
// посылаем запрос
BOOL bSend = ::HttpSendRequest(hRequest, NULL,0, NULL,0);
if (bSend) {
// создаём выходной файл
ofstream fnews("news.html",ios::out|ios::binary);
if (fnews.is_open())
for (;;) {
// читаем данные
char szData[1024];
DWORD dwBytesRead;
BOOL bRead =
::InternetReadFile(
hRequest,
szData,sizeof(szData)-1,
&dwBytesRead);
if (bRead == FALSE || dwBytesRead == 0)
break;
// сохраняем результат
szData[dwBytesRead] = 0;
fnews << szData;
cout << szData;
ok = true;
}
}
// закрываем запрос
::InternetCloseHandle(hRequest);
}
// закрываем сессию
::InternetCloseHandle(hConnect);
}
// закрываем WinInet
::InternetCloseHandle(hInternet);
}
+160
MainDM->ADOQ_pr_kontr_vert->SQL->Add(
"SELECT Smena, Prostenok, Popravka, Val_zad_temp, t.Zam1, t.Zam2, t.Zam3, t.Zam4, "
"@sr1:=((t.Zam1 + t.Zam2 + t.Zam3 + t.Zam4) / 4) as sredn, "
"@p:= @sr1 - (avgtempr.avgZam1 + avgtempr.avgZam2 + avgtempr.avgZam3 + avgtempr.avgZam4) / 4 as popravka from "
"(SELECT avg(Zam1) as avgZam1, avg(Zam2) as avgZam2, avg(Zam3) as avgZam3, avg(Zam4) as avgZam4 from "
"(SELECT "
"SUM(CASE "
"WHEN kontroln_vertik.Zamer = 1 THEN kontroln_vertik.Value ELSE 0 "
"END) as Zam1, "
"SUM(CASE "
"WHEN kontroln_vertik.Zamer = 2 THEN kontroln_vertik.Value ELSE 0 "
"END) as Zam2, "
"SUM(CASE "
"WHEN kontroln_vertik.Zamer = 3 THEN kontroln_vertik.Value ELSE 0 "
"END) as Zam3, "
"SUM(CASE "
"WHEN kontroln_vertik.Zamer = 4 THEN kontroln_vertik.Value ELSE 0 "
"END) as Zam4 "
"FROM kontroln_vertik WHERE kontroln_vertik.Date = \'2011-03-02\' "
"and kontroln_vertik.Storona = 1 "
"group by kontroln_vertik.Prostenok) zameri) avgtempr, "
"(SELECT kontroln_vertik.Smena, kontroln_vertik.Prostenok, kontroln_vertik.Popravka, "
"kontroln_vertik.Val_zad_temp, kontroln_vertik.Period_koks, "
"SUM(CASE "
"WHEN kontroln_vertik.Zamer = 1 THEN kontroln_vertik.Value ELSE 0 "
"END) as Zam1, "
"SUM(CASE "
"WHEN kontroln_vertik.Zamer = 2 THEN kontroln_vertik.Value ELSE 0 "
"END) as Zam2, "
"SUM(CASE "
"WHEN kontroln_vertik.Zamer = 3 THEN kontroln_vertik.Value ELSE 0 "
"END) as Zam3, "
"SUM(CASE "
"WHEN kontroln_vertik.Zamer = 4 THEN kontroln_vertik.Value ELSE 0 "
"END) as Zam4 "
"FROM kontroln_vertik "
"WHERE kontroln_vertik.Date = \'2011-03-02\' and "
"kontroln_vertik.Storona = 1 "
"group by kontroln_vertik.Prostenok) t"
);
+159
TCHAR aS[22];
m_pCurrentLine->mainPortStatistics.TOs = 0;
_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.TOs);
SetDlgItemText(IDC_EDIT_MAIN_TIMEOUTS, aS);
m_pCurrentLine->mainPortStatistics.err_CE_MODE = 0;
_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_MODE);
SetDlgItemText(IDC_EDIT_MAIN_MODE, aS);
m_pCurrentLine->mainPortStatistics.err_CE_BREAK = 0;
_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_BREAK);
SetDlgItemText(IDC_EDIT_MAIN_BREAK, aS);
m_pCurrentLine->mainPortStatistics.err_CE_FRAME = 0;
_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_FRAME);
SetDlgItemText(IDC_EDIT_MAIN_FRAME, aS);
m_pCurrentLine->mainPortStatistics.err_CE_RXOVER = 0;
_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_RXOVER);
SetDlgItemText(IDC_EDIT_MAIN_RXOVER, aS);
m_pCurrentLine->mainPortStatistics.err_CE_TXFULL = 0;
_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_TXFULL);
SetDlgItemText(IDC_EDIT_MAIN_TXFULL, aS);
m_pCurrentLine->mainPortStatistics.err_CE_OVERRUN = 0;
_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_OVERRUN);
SetDlgItemText(IDC_EDIT_MAIN_OVERRUN, aS);
m_pCurrentLine->mainPortStatistics.err_CE_RXPARITY = 0;
_stprintf(aS, _T("%d"), m_pCurrentLine->mainPortStatistics.err_CE_RXPARITY);
SetDlgItemText(IDC_EDIT_MAIN_RXPARITY, aS);
каждому элементу структуры mainPortStatistics присваивается значение 0, затем каждый раз форматируется строка и засылается в функцию SetDlgItemText. Вменяемый человек пользуется для обнуления структуры функцией memset а затем ставит текст "0" во все controls. А говнокодер думает ,что чем больше дерьмокода развести - тем круче