- 1
- 2
- 3
- 4
fstat(fd, &s);
count = s.st_size % sizeof(uint32_t) == 0 ? s.st_size : s.st_size + (sizeof(uint32_t) - s.st_size % sizeof(uint32_t));
buf = malloc(count);
/* etc */
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+142
fstat(fd, &s);
count = s.st_size % sizeof(uint32_t) == 0 ? s.st_size : s.st_size + (sizeof(uint32_t) - s.st_size % sizeof(uint32_t));
buf = malloc(count);
/* etc */
Собственно, round up to nearest 32-bit word. Нет ли метода покрасивше?
+146
#ifndef FILTER_H
#define FILTER_H
#include <cassert>
#include <vector>
#include <algorithm>
template<typename T>
class filter_container;
namespace detail {
template<typename Iter, typename Pred>
class filter {
public:
filter(Iter begin, Iter end, Pred pred) :_begin(begin), _end(end), _pred(pred) { }
filter(const filter & f) : _begin(f._begin), _end(f._end), _pred(f._pred) { }
filter & operator = (const filter & f) {
if(this != &f) {
_begin = f._begin;
_end = f._end;
_pred = f._pred;
}
return *this;
}
~filter() { }
class const_iterator {
public:
typedef typename Iter::reference reference;
typedef typename Iter::pointer pointer;
const_iterator(Iter iter, const filter & cont) :_iter(iter), _cont(&cont) { advance_until_pred(); }
const_iterator(const const_iterator & i) :_iter(i._iter), _cont(i._cont) { }
const_iterator & operator = (const const_iterator & i) {
if(this != &i) {
_iter = i._iter;
_cont = i._cont
}
return *this;
}
~const_iterator() { }
const_iterator & operator++() { advance_until_pred(); return *this; }
const_iterator operator++(int) {
const_iterator ret = *this;
advance_until_pred();
return ret;
}
const reference operator*() const { return *_iter; }
const pointer operator->() const { return &*_iter; }
bool operator == (const const_iterator & i) const {
assert(_cont == i._cont);
return _iter == i._iter;
}
bool operator != (const const_iterator & i) const { return !(*this == i); }
protected:
Iter _iter;
const filter * _cont;
private:
void advance_until_pred() {
if(_iter != _cont->_end) {
std::advance(_iter, 1);
}
_iter = std::find_if(_iter, _cont->_end, _cont->_pred);
}
private:
const_iterator();
};
class iterator : public const_iterator {
public:
iterator(Iter iter, const filter & cont) :const_iterator(iter, cont) { }
iterator(const iterator & i) :const_iterator(i) { }
iterator & operator = (const iterator & i) { const_iterator::operator=(i); return *this; }
~iterator() { }
reference operator*() { return *_iter; }
pointer operator->() { return &*_iter; }
private:
iterator();
};
iterator begin() { return iterator(_begin, *this); }
iterator end() { return iterator(_end, *this); }
const_iterator cbegin() const { return const_iterator(_begin, *this); }
const_iterator cend() const { return const_iterator(_end, *this); }
private:
Iter _begin, _end;
Pred _pred;
private:
filter();
};
}
template<typename Iter, typename Pred>
detail::filter<Iter, Pred> filter(Iter begin, Iter end, Pred pred) {
return detail::filter<Iter, Pred>(begin, end, pred);
}
#endif // FILTER_H
Тривиальная крестовщина, ничего выдающегося. Внезапно подумалось, что подобный контейнер был бы довольно удобен.
Мне просто любопытно, насколько быстро этот пост будет слит автоминусаторами :)
+142
public List<MainTZInfoVO> GetMyJobs(bool flag1, bool flag2, bool flag3, bool flag4, string date1, string date2)
{
List<MainTZInfoVO> ulist = new List<MainTZInfoVO>(); // список заданий пользователя
string sIdUser = usr.GetUserOrAssistansID().ToString(); // ID пользователя
//выданы мне задания
string sql1 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '1' as NOT_RECEIVED from tz_all_jobs where (trim(id_ispol) like '%,'||'" + sIdUser + "'||',%' or trim(id_ispol) like '" + sIdUser + "'||',%') and (status='Выдано' or status = 'Отклонено частично') and nvl(id_prin,' ') not like '%,'||'" + sIdUser + "'||',%' and nvl(id_prin,' ') not like '" + sIdUser + "'||',%' and nvl(id_otkl,' ') not like '%,'||'" + sIdUser + "'||',%' and nvl(id_otkl,' ') not like '" + sIdUser + "'||',%'";
//принятые мной, не рассмотренные другими
string sql2 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '0' as NOT_RECEIVED from tz_all_jobs where (status='Выдано' or status = 'Отклонено частично') and (nvl(id_prin,' ') like '%,'||'" + sIdUser + "'||',%' or nvl(id_prin,' ') like '" + sIdUser + "'||',%' or nvl(id_otkl,' ') like '%,'||'" + sIdUser + "'||',%' or nvl(id_otkl,' ') like '" + sIdUser + "'||',%')";
//выданные мне в статусе отклонено
string sql3 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '2' as NOT_RECEIVED from tz_all_jobs where (id_ispol like '%,'||'" + sIdUser + "'||',%' or id_ispol like '" + sIdUser + "'||',%') and (status='Отклонено' or status='Аннулировано')";
//ограничение по дате
string sql4 = "date_vyd between to_date('" + date1 + "','DD.MM.YYYY') and to_date('" + date2 + "','DD.MM.YYYY')";
string sql = " ";
//формируем sql-ку по флажкам, которые передаем в функцию
if (flag1 == true)
{
sql = sql1;
}
if (flag2 == true)
{
if (sql.Length > 1)
{
sql = sql + " union " + sql2;
}
else
{
sql = sql2;
}
}
if (flag3 == true)
{
if (sql.Length > 1)
{
sql = sql + " union " + sql3;
}
else
{
sql = sql3;
}
}
if ((flag4 == true) & (sql.Length > 1))
{
sql = "select * from (" + sql + ") tabl where " + sql4;
}
sql = sql + " order by date_vyd desc";
OracleCommand cmd = new OracleCommand(sql, connection);
OracleDataReader reader = cmd.ExecuteReader();
//ТУТ ПЕРЕДЕЛАТЬ ВСЕ
/*заполнение полей из ридера*/
while (reader.Read())
{
//...
}
return ulist;
}
в этом коде прекрасно все (имена и типы переменных, жестокое обращение с датами, чуть менее жестокое обращения с "флажками", соединение с Ораклом, которое открывается где-то за пределами вселенной и не закрывается нигде, и еще много всего)...
дочитав этот шедевр до строчки //ТУТ ПЕРЕДЕЛАТЬ ВСЕ, просто невозможно не прослезиться...
−161
select distinct cast(null as integer) NZAP,d_ext_uslug_napr_zag.id_doc_public NNAPR,d_ext_uslug_napr_zag.date_doc DNAPR,
d_ext_uslug_napr_zag.form_med_pom FOMP, tab_lpu.lpu_ext_code MONAPR, tab_struct_obos_unit.code_ffoms PMONAPR, cast (:lpu_ext_code as varchar(20)) MO, TSOU1.code_ffoms PMO,
tab_other_strings.code_external VPOLIS,patients.polis_s SPOLIS,patients.polis_n NPOLIS,
tab_msk.smocod SMO, tab_msk.TF_OKATO TER,
d_ext_uslug_napr_zag.fam FAM, d_ext_uslug_napr_zag.nam IM, d_ext_uslug_napr_zag.otch OT, d_ext_uslug_napr_zag.male P, d_ext_uslug_napr_zag.born DR,
patients.TELEFON TEL,
d_ext_uslug_napr_zag.ds_osn_mkb DSNAPR, TAB_PLACE_PARAM.profil_koek_for_foms PROFK,tab_profile.CODE_PROFILE_EGISZ_PRFO PROFO,
TAB_PLACE_PARAM.profil_koek_for_foms PROFKNAPR,
tab_profile.CODE_PROFILE_EGISZ_PRFO PROFONAPR,
users.snils MEDRAB,
med_kart.id_kart_public NKART, med_kart.ds_priem_mkb DS,
d_ext_uslug_napr_zag.date_plan_gosp DPGOSP,
MED_KART.date_vipis_planed DPOGOSP
from d_ext_uslug_napr_zag
left outer join patients on patients.id_pac=d_ext_uslug_napr_zag.pac_id and patients.dae>='31.12.9999'
left outer join tab_other_strings on tab_other_strings.id_string=patients.polis_type
left outer join tab_profile on tab_profile.id_profile=d_ext_uslug_napr_zag.TARGET_PODR_PROFILE
left outer join R_USERS_DOLGN on R_USERS_DOLGN.ID_KD=d_ext_uslug_napr_zag.NAPR_DOCTOR_KD_ID
left outer join users on users.id_user=d_ext_uslug_napr_zag.napr_doctor_user_id
left outer join tab_msk on tab_msk.id_msk=patients.msk
left outer join tab_place on tab_place.id_place=d_ext_uslug_napr_zag.napr_place_id
left outer join tab_struct_obos_unit on tab_struct_obos_unit.lpu_id=d_ext_uslug_napr_zag.from_lpu_id
left outer join tab_struct_obos_unit TSOU1 on TSOU1.id_obos_unit=tab_place.obos_unit_id
left outer join d_diagn on d_diagn.id_doc = d_ext_uslug_napr_zag.id_doc
left outer join med_kart on med_kart.pac_id = patients.id_pac
and med_kart.dt_coming>=:O_BEG and med_kart.dt_coming<=:O_END
left outer join d_dvig on d_dvig.med_kart=med_kart.id_kart and d_dvig.type_dvig=31
left outer join tab_place_param on tab_place_param.id_place=d_dvig.target_place
and tab_place_param.dab<=:O_BEG and tab_place_param.dae>:O_BEG
left outer join tab_struct_place_har on tab_struct_place_har.place_id=tab_place.id_place
left outer join tab_lpu on tab_lpu.lpu_code= med_kart.napr_lpu
where d_ext_uslug_napr_zag.IS_INCOMING=0 and d_ext_uslug_napr_zag.pay_id=1 --IS_INCOMING=0 только исходящие,
and d_ext_uslug_napr_zag.date_doc>=:O_BEG and d_ext_uslug_napr_zag.date_doc<=:O_END
Обратите внимание на tab_place_param
Также стоит отметить, что в таблице d_ext_uslug_napr_zag имеются поля med_kart_id, lpu_id, obos_unit_id.
Ещё: obos_unit — на самом деле подразделение lpu, их может быть несколько. Автор почему-то об этом не подумал.
+144
cs_zagl.Edit;
cs_zagl.fieldbyname('count_z').asinteger:=cs_tab.RecordCount;
cs_zagl.Post;
cs_mk.Edit;
cs_mk.FieldByName('med_kart_id').Asinteger:=select_row_Form.ClientDataSet1.FieldByName('id_kart').asinteger;
cs_mk.FieldByName('id_kart_public').Asinteger:=select_row_Form.ClientDataSet1.FieldByName('id_kart_public').asinteger;
cs_mk.FieldByName('id_pac').Asinteger:=select_row_Form.ClientDataSet1.FieldByName('id_pac').asinteger;
cs_mk.FieldByName('type_kart').asinteger:=select_row_Form.ClientDataSet1.FieldByName('type_kart').asinteger;
cs_mk.post;
IF (cs_mk.FieldByName('med_kart_id').Value=0) or (cs_mk.FieldByName('type_kart').asinteger<>27) then begin
cmd := VarArrayCreate([0,20],varVariant);
cmd[1] := 6832;
cmd[2] := 17;
cmd[5] := 1;
cmd[6] := 0;
ProvOptions := [grMetadata, grReset];
cmd[7] := dsp_mk.GetRecords(-1, RecsOut, Byte(ProvOptions));
try
rez := MainFormInterface.EXT_call_server('spr_read', cmd);
cs_tab.Edit;
cs_tab.FieldByName('med_kart_id').Asinteger:=rez[3];
cs_tab.Post;
if rez[1] < 0 then begin
debug_sql('Ошибка: ' + varastype(rez[1], varstring), 2);
MessageDlg('Ошибка: '+ #10 + #13 +
varastype(rez[1],varstring),mtError,[mbok],0);
Exit;
end;
except
on e:exception do
begin
MessageDlg(ERROR_MESS_5 + 'Исключение:' + E.ClassName + 'Mess:' + E.Message, mterror, [mbok], 0);
debug_sql('Ошибка записи документа!', 2);
debug_all('Err при записи документа тип=' + varastype(cmd[1], varstring)+
' id=' + inttostr(id_doc) + 'Исключение:' + E.ClassName + 'Mess:' + E.Message,2);
end;
end;
end;
end else begin
end;
end
else exit;
end else
begin
id_pac:=rez[3];
id_med_kart:=rez[2];
Application.MessageBox(pchar('Ошибка: '+#10+#13+
'Даный пациент не найден!!!'),pchar(application_title_short),MB_OK+MB_ICONERROR);
exit;
end;
end;
Это называется стиль
+142
$("input[name=remarks[]][type=checkbox]:checked").each(function(){
....
})
Что бывает когда начинают "программировать" на jquery
+141
class ammo
{
public:
bool existance;
COORD alloc;
void print()
{
pole[alloc.Y+1][alloc.X]=' ';
pole[alloc.Y][alloc.X]='*';
}
};
ammo bullet[10];
void initpole();
void replaceunit();
void printpole();
void redirect();
void fire();
void ammomove();
int main(int argc, char* argv[]) //òåëî
{
initpole();
do{
if(kbhit())
redirect();
printpole();
ammomove();
Sleep(0);
}
while(chk!=27);
return 0;
}
void redirect() //обработка нажатой клавиши
{
chk=getch();
if(chk==32)
{
bullet[bulletcounter].existance=true;
if(bulletcounter<10)
bulletcounter++;
else
bulletcounter=0;
fire();
}
else if(chk==75 || chk==77)
replaceunit();
else if(chk==112)
{
system("pause");
system("cls");
}
}
void fire() //инициализация пули
{
bullet[bulletcounter].alloc.X=x;
bullet[bulletcounter].alloc.Y=y-3;
if(bullet[bulletcounter].existance==true)
bullet[bulletcounter].print();
}
void ammomove() //сдвиг пули
{
if(bullet[bulletcounter].existance==true)
if(bullet[bulletcounter].alloc.Y>1)
{
bullet[bulletcounter].alloc.Y--;
bullet[bulletcounter].print();
}
else
{
bullet[bulletcounter].existance=false;
pole[bullet[bulletcounter].alloc.Y][bullet[bulletcounter].alloc.X]=' ';
}
}
по нажатию пробела должна вылетать пулька, но чегот не хочет она вылетать, есть идеи? :3
+142
...
if (!empty($desc_for_filters) && empty($desc_for_filters)) {
...
код Шрёдингера
+145
int main () {
constexpr int a = f ();
constexpr int b = f ();
static_assert (a != b, "fail");
}
Можно ли это успешно скомпилировать?
http://b.atch.se/posts/non-constant-constant-expressions/
Можно, лал.
+147
https://ideone.com/xM1uqd