- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
//Set different text depending on how long on progressbar progress is
if (dwStepPercent < 25)
byText=0;
else if (dwStepPercent < 50)
byText=1;
else if (dwStepPercent < 75)
byText=2;
else
byText=3;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+165
//Set different text depending on how long on progressbar progress is
if (dwStepPercent < 25)
byText=0;
else if (dwStepPercent < 50)
byText=1;
else if (dwStepPercent < 75)
byText=2;
else
byText=3;
Отличный способ не делить.
+155
/* use <first> of a [std::pair] */
template<typename _type_, typename _pred_>
struct use_first {
use_first(_type_ val, _pred_ pred) { value = val; predicate = pred; }
template<typename _first_type_, typename _second_type_>
bool operator()(const std::pair<_first_type_, _second_type_> &pr)
{
return predicate(pr.first, value);
}
private:
_type_ value;
_pred_ predicate;
};
/* factory function: use it to init a [use_first] object */
template<typename _type_, typename _pred_>
use_first<_type_, _pred_> make_use_first(_type_ value, _pred_ pred)
{
return use_first<_type_, _pred_>(value, pred);
}
/* usage of [use_first] */
std::vector< std::pair<int, int> > lol;
std::vector< std::pair<int, int> >::iterator = std::find_if(lol.begin(), lol.end(), make_use_first(0, std::equal_to()));
собственно была проблема в том, что в контейнерах(например std::vector, std::deque) хранятся пары(std::pair) и зачастую нужно организовать какие-либо действия либо по первому(first), либо по второму(second) члену из std::pair.
приведен код только для first, ибо код для second немного похож
в итоге получилось сие поделие, а еще я люблю обмазаться несвежим....
+145
[Mon Nov 22 15:52:46 2010] [emerg] [client 217.69.133.30] mod_bartertown_translate: Fatal: STL: cannot find file in include directories `/`
жгут
написали бы еще "не могу открыть что-то что должно лежать в '/'"
программа не смогла открыть файл и написала в логи..
+162
GetFirstFieldWithName(CString szElemName)
{
int i = -1;
for (i = 0; i < m_FieldValues.GetSize(); i ++)
{
if (m_FieldValues[i]->m_szElemName == szElemName)
break;
}
if ((i > 0) && (i < m_FieldValues.GetSize()))
return m_FieldValues[i];
else
return NULL;
}
+166
JNIEXPORT jstring JNICALL _Java_com_fl_nat_Status_listProcessess0(JNIEnv *env, jobject obj) {
char format[1024*128];
char name[128];
unsigned long procs[1024], needed, ret;
if(!EnumProcesses(procs, sizeof(procs), &needed)) return (*env)->NewStringUTF(env, "");
ret = needed / sizeof(unsigned long);
unsigned int i = 0;
for(; i < ret; i++) {
if(procs[i] == 0) continue;
HANDLE hproc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, procs[i]);
GetModuleBaseName(hproc, 0, name, 128);
strncat(format, name, strlen(name));
strncat(format, ",", 1);
sprintf(name, "%i", procs[i]);
strncat(format, name, strlen(name));
strncat(format, ";", 1);
CloseHandle(hproc);
}
return (*env)->NewStringUTF(env, format);
}
к говнокоду №4685
итак, эта программа (JNI на C++ и "клиентская" часть на Java) создают список процессов таким извращенным образом:
C++ создает строку вида "имяпроцесса1,идпроцесса1;имяпроцесса2,и дпроцесса2;", после чего жабо-код парсит эту строку, переводя её в массив обьектов SystemProcess
+145
if (mode == MASTER)
Dev_Mode = MASTER;
else
Dev_Mode = SLAVE;
+145
for(i=0;i<=15;i++) {
o=Odd(N[i]);s=Simple(N[i]);//Odd-проверка на нечётность всех цифр, Simple-на простое число
if((o&&s)||(N[i]==3||N[i]==5||N[i]==7))
{
}
else cprintf("%d ",N[i]); //и вот тут замкнуло...но по другому никак)
if(i>n+4) goto exit;//потерялись 4 элемента...
}
лаба..сдам на следующей неделе, в надежде что у препода произойдёт переполнение и поставит, всё-таки всё работает =)
+183
bool or(bool x1, bool x2) {
if (x1 || x2)
return true;
else
return false;
}
Я РЕАЛЬНО видел такой код, написанный на полном серьёзе.
+163
long Date :: ConvertToDays()
{
int M=0,Y=0;
for(int i=2;i<=m_Year;i++)
{
if((i%4 == 0) && (i%100 !=0) || (i%400==0))Y+=366;
else Y+=365;
}
for(i=2;i<=m_Month;i++){
if (i == 1)M=0;else
if ((((m_Year%4 == 0) && (m_Year%100 !=0) || (m_Year%400==0)) && (i == 3)))M+=29;else
if ((((m_Year%4 != 0) || ((m_Year%100 ==0) && (m_Year%400 !=0))) && (i == 3)))M+=28;else
if ((i == 2) || (i == 4) || (i == 6) || (i == 8) || (i == 9) || (i == 11))M+=31;else
if ((i == 5) || (i == 7) || (i == 10) || (i == 12))M+=30;
}
return m_Day+M+Y;
}
Взято с forum.xakep.ru
+159
int makedata(int id,int part,void *d,int datalen,void *buf)
{
//packet struct :
// code = short int, lenght = shotr int, id = int, numofpart = int, data = 1024
int packlen = sizeof(short int)*2 + sizeof(int)*2 + datalen;
char *tbuf = new char [packlen];
char* tbufptr = tbuf;
*((short int *)tbufptr) = data; //first field
(short int *)tbufptr++;
*((short int *)tbufptr) = packlen; //second field
(short int *)tbufptr++;
*((int *)tbufptr) = id;
(int *)tbufptr++;
*((int *)tbufptr) = part;
(int *)tbufptr++;
*((short int *)tbufptr) = datalen;
(short int *)tbufptr++;
memcpy((void*)tbufptr,d,datalen);
buf=tbuf;
return packlen;
}
fileinfo* getask(void *b)
{
fileinfo *fi = new fileinfo();
char *bufptr = (char*)b;
(short int*)bufptr++;
short int plen = *((short int*)bufptr);
(short int*)bufptr++;
fi->numofpart = *((int*)bufptr);
(int*)bufptr++;
fi->filelenght = *((int*)bufptr);
(int*)bufptr++;
int filelen = plen-(bufptr-(char*)b);
fi->filename = new char[filelen];
strncpy(fi->filename,bufptr,filelen);
return fi;
}
Вместо того, что бы воспользоваться структурой, забиваем всё ручками.