- 1
- 2
- 3
- 4
private static bool? GetBoolFromObject(object o)
{
return string.IsNullOrEmpty(o.ToString()) ? (bool?)null : (bool)o;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+130
private static bool? GetBoolFromObject(object o)
{
return string.IsNullOrEmpty(o.ToString()) ? (bool?)null : (bool)o;
}
и как такое можно только писать...
+157
if ( '' !== $qv['second'] ) {
$this->is_time = true;
$this->is_date = true;
}
if ( '' !== $qv['minute'] ) {
$this->is_time = true;
$this->is_date = true;
}
if ( '' !== $qv['hour'] ) {
$this->is_time = true;
$this->is_date = true;
}
if ( $qv['day'] ) {
if ( ! $this->is_date ) {
$this->is_day = true;
$this->is_date = true;
}
}
if ( $qv['monthnum'] ) {
if ( ! $this->is_date ) {
$this->is_month = true;
$this->is_date = true;
}
}
if ( $qv['year'] ) {
if ( ! $this->is_date ) {
$this->is_year = true;
$this->is_date = true;
}
}
if ( $qv['m'] ) {
$this->is_date = true;
if ( strlen($qv['m']) > 9 ) {
$this->is_time = true;
} else if ( strlen($qv['m']) > 7 ) {
$this->is_day = true;
} else if ( strlen($qv['m']) > 5 ) {
$this->is_month = true;
} else {
$this->is_year = true;
}
}
ВротПресс
+168
#define TPLM Tuple(TPLMOVE) +
#define TPLC Tuple(TPLCOPY) +
#define TPL Tuple() +
//#define GTPL Tuple() +
#define TPLERROR(t) { memcpy(0, 0, 1); }
#define TPLMOVE 1 // copy to tuple, memset 0 original. = destruct dest, copy to dest.
#define TPLCOPY 2 // copy constructor = destruct dest, copy to dest
#define TPLGET 3 // destruct all values :)
#include <memory.h>
#include <math.h>
#include <stdio.h>
#include <typeinfo>
#include <string.h>
#define max(a, b) (((a) > (b)) ? (a) : (b))
#define min(a, b) (((a) < (b)) ? (a) : (b))
unsigned int mcrc(char* name, unsigned int sz){
unsigned int ret=0; if(!sz) sz=(unsigned int)strlen(name);
char*t=name+sz; int p=0;
while(name<t){
*(((char*)&ret)+p)+=*name; p++;
if(p>=4) p=0; name++;
}
return ret;
}
struct Tupled{ unsigned int sz, type; void *v; char data[0]; };
class Tuple{
int count, set, dusz, dasz;
unsigned char *data;
int type; int adel;
public:
Tuple(){ count=0; set=0; type=0; dusz=0; dasz=0; data=0; adel=0; }
Tuple(int t){ type=t; }
~Tuple(){ if(count!=set) TPLERROR("~Tuple"); delete data; }
Tuple(Tuple &t){
count=t.count; set=t.set; dusz=t.dusz; dasz=t.dasz; data=t.data;
t.count=0; t.set=0; t.data=0; adel=1;
}
template <class T>
Tuple& operator+(T &t){ if(!adel) Add(&t, sizeof(t), t); else Del(&t, sizeof(t), t); return *this; }
template <class T>
Tuple& operator-(T &t){ if(!adel) Add(&t, sizeof(t), t); else Del(&t, sizeof(t), t); return *this; }
/* Операторы '*', '/', ',', '>', '<' код идентичен */
template <class T>
void Add(void *v, int s, T &t){
if(dasz-dusz<s+4+(int)sizeof(void*)){
unsigned char *ldata=data;
data=new unsigned char[dasz+max(128, s+4)];
memcpy(data, ldata, dasz);
dasz+=max(128, s);
delete [] ldata;
}
Tupled &d=*(Tupled*)(data+dusz);
d.sz=s;
memcpy(&d.v, v, sizeof(void*));
if(type==TPLCOPY){ *(T*)d.data=t; } else memcpy(d.data, v, s);
if(type==TPLMOVE) t.~T();
d.type=mcrc((char*)typeid(t).name(), 0);
dusz+=sizeof(Tupled)+s; count++;
}
template <class T>
void Del(void *v, int s, T &t){
if(set>=count){ TPLERROR("Tuple::Set"); return ; }
unsigned char *p=GetData(set);
if(!p){ TPLERROR("Tuple::NoData"); return ; }
Tupled &d=*(Tupled*)p;
unsigned int tp=mcrc((char*)typeid(t).name(), 0);
if(tp!=d.type){ TPLERROR("Tuple::TYPE"); return ;}
t.~T();
if(d.sz!=s){ TPLERROR("Tuple::SIZE"); return ;}
memcpy(v, d.data, d.sz);
set++;
}
unsigned char* GetData(int c){
if(c>=count) return 0;
unsigned char *p=data;
for(int i=0; i<c; i++){
p+=sizeof(Tupled)+*(int*)p;
}
return p;
}
};
Очередной самобытный велосипед от микеля.
http://rsdn.ru/forum/src/4218954.aspx
+122
var product=dataContext.Products.Where(p=>p.Name == "SomeProductName")
if (products.Count() != 0)
{
return new Product
{
ProductId = products.First().AM_PRODUCT_ID,
ProductName = products.First().PRODUCT_NAME,
IsActive = products.First().IS_ACTIVE
};
}
this way of selecting product from table by its name generate 4 queries instead 1 ...
+102
while dlg_SmplSpk.ShowModal = mrOk do ;
Узрел такое! Срочно к себе в рецепты прогрессивного программирования!
Сделано это для того, чтобы окно не закрывалось при подтверждении всех сделанных действий.
Закрываться должно только при нажатии кнопочки "Закрыть".
Отсюда непонятен ход мыслей автора сия творения.
+161
/**
* Standard QWidget Constructor
*/
SeismicSelectionDG::SeismicSelectionDG(QWidget *parent)
: QDialog(parent), ui(new Ui::SeismicSelectionDG)
{
...
}
/**
* Destructor
*/
SeismicSelectionDG::~SeismicSelectionDG()
{
if(ui) delete ui;
}
/**
* Set title to dialog box
* @param title The title for dialog box
*/
void SeismicSelectionDG::setDialogTitle(const QString& title)
{
QDialog::setWindowTitle(title);
}
Обратим внимание как мой коллега китаец тщательно документирует код. метод setDialogTitle - в особенности. А учитывая что QDialog::setWindowTitle - библиотечный метод, необходимость оборачивать его в свой метод полностью отсутствует. Также глупость в деструкторе - для delete необязательно проверять указатель на 0.
−133
Процедура БазоваяПриИзменении(Элемент)
Если ЭтаФорма.ЕдОтчетов = Истина Тогда
ЭтаФорма.ВДаллах = Ложь;
ЭтаФорма.ВРублях = Ложь;
ЭтаФорма.Ед_храненияОст = Ложь;
Иначе
ЭтаФорма.ВДаллах = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.Ед_храненияОст = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ВДаллахПриИзменении(Элемент)
Если ЭтаФорма.ВДаллах = Истина Тогда
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Ложь;
ЭтаФорма.Ед_храненияОст = Ложь;
Иначе
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.Ед_храненияОст = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура Ед_храненияОстПриИзменении(Элемент)
Если ЭтаФорма.Ед_храненияОст = Истина Тогда
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Ложь;
ЭтаФорма.ВДаллах = Ложь;
Иначе
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.ВДаллах = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура ВРубляхПриИзменении(Элемент)
Если ЭтаФорма.ВРублях = Истина Тогда
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.Ед_храненияОст = Ложь;
ЭтаФорма.ВДаллах = Ложь;
Иначе
ЭтаФорма.ЕдОтчетов = Ложь;
ЭтаФорма.ВРублях = Истина;
ЭтаФорма.ВДаллах = Ложь;
КонецЕсли;
КонецПроцедуры
Замечательная реализация радиобаттонов через флажки
+145
int i=0;
for (i=0;i<2;)
{cout<<"Enter M takoe 4to Bbl -> m>0 .\n ";
cin>>M;
if (M>0)
i=76;
}
Из лабы однокурсника по C++.
+163
std::vector<double> WBuffer;
std::vector<double> CleanWBuffer;
std::vector<Color> PixelBuffer;
std::vector<Color> CleanPixelBuffer;
void Scene3D::ClearBuffers()
{
const size_t n = static_cast<size_t>(ScreenSize[0] * ScreenSize[1]);
memcpy(&*(WBuffer.begin()), &*(CleanWBuffer.begin()), n * sizeof(*(WBuffer.begin())));
memcpy(&*(PixelBuffer.begin()), &*(CleanPixelBuffer.begin()), n * sizeof(*(PixelBuffer.begin())));
}
Быстрая очистка буферов.
CleanWBuffer предварительно заполнен 0.0, CleanPixelBuffer предварительно заполнен нужным цветом.
Можно было воспользоваться std::fill, но оно работает в несколько раз дольше.
Пришлось так вот лезть в потроха std::vector. Доставляют подряд идущие & и *.
+155
/**
* Обновление информации о пользователе
*
* @param integer $user_id
* @param array $data
* @return Zend_Db_Statement_Pdo
*/
public function updateProfile($user_id, $data)
{
// TODO: сделать человеческую валидацию
$params = $keys = array();
if ($data['login'] !== NULL) {
$keys[] = 'u_login = ?';
$params[] = $data['login'];
}
if (Zend_Validate::is($data['email'], 'EmailAddress')) {
$keys[] = 'u_email = ?';
$params[] = $data['email'];
}
if ($data['sname'] !== NULL) {
$keys[] = 'u_sname = ?';
$params[] = $data['sname'];
}
if ($data['name'] !== NULL) {
$keys[] = 'u_name = ?';
$params[] = $data['name'];
}
if ($data['fname'] !== NULL) {
$keys[] = 'u_fname = ?';
$params[] = $data['fname'];
}
if ($data['birthdate'] !== NULL) {
$keys[] = 'u_birthdate = ?';
$params[] = $data['birthdate'];
} else {
$keys[] = 'u_birthdate = NULL';
}
if ($data['city'] !== NULL) {
$keys[] = 'u_c_id = ?';
$params[] = (int) $data['city'];
}
if ($data['info'] !== NULL) {
$keys[] = 'u_info = ?';
$params[] = $data['info'];
}
if ($data['sign'] !== NULL) {
$keys[] = 'u_sign = ?';
$params[] = $data['sign'];
}
if ($data['sex'] === 'M' OR $data['sex'] === 'F') {
$keys[] = 'u_sex = ?';
$params[] = $data['sex'];
}
if ($data['subscribe'] === 'on' AND ($data['subtype'] === 'T' OR $data['subtype'] === 'H')) {
$keys[] = 'u_subscribed = ?';
$params[] = $data['subtype'] === 'T' ? 1 : 2;
} else {
$keys[] = 'u_subscribed = ?';
$params[] = 0;
}
$sql = 'UPDATE users SET ' . implode(', ', $keys) . ' WHERE u_id = ' . (int) $user_id;
$query = $this->db->query($sql, $params);
$this->clearUserCache($user_id);
return $query;
}