- 1
- 2
- 3
- 4
- 5
- 6
for(;!isCancel(); [&]{
for(int i = 0; (i < settrings.getValue(Settings::Updater::Period, 60)) && !isCancel(); ++i)
{
Concurrency::wait(1000);
}}())
{
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+53
for(;!isCancel(); [&]{
for(int i = 0; (i < settrings.getValue(Settings::Updater::Period, 60)) && !isCancel(); ++i)
{
Concurrency::wait(1000);
}}())
{
+163
if (in_array($id, $_SESSION['id']))
{
for ($j = 0; $j < count($_SESSION['id']); $j++)
{
if ($_SESSION['id'][$j] == $id)
{ $num_el = $j;}
}
$_SESSION['count'][$num_el] += $count;
$_SESSION['summa'][$num_el] += $cost*1*$count;
$_SESSION['summa_all'] += $cost*1*$count;
$_SESSION['count_all'] += $count;
}
else
{
$_SESSION['id'][] = $id;
$_SESSION['count'][] = $count;
$_SESSION['summa'][] = $cost*1*$count;
$_SESSION['summa_all'] += $cost*1*$count;
$_SESSION['count_all'] += $count;
}
Главное не забыть умножить на единицу
−137
Если НЕ ЗаполненНаОснованииДокумента Тогда
ИнициализироватьУсловияПродаж();
КонецЕсли;
ИнициализироватьУсловияПродаж();
Чтоб наверняка.
Типовая УТ 11.1.10.94, документ РеализацияТоваровУслуг, модуль объекта, стр.819-822
+130
// Заполняем датагрид
var q = from i in currentData select new { i.IDRFData, i.IDRowData, i.Description, i.SumVal };
dgMain.DataContext = q.ToList();
// Получаем оттуда выделенный элемент
object DR = dgMain.SelectedValue;
var TypedData = Cast(DR, new
{
IDRFData = default(Guid),
IDRowData = default(Guid),
Description = default(string),
SumVal = default(double),
});
// Кстати, функция Cast делает следующее:
public static T Cast<T>(object obj, T type)
{
return (T)obj;
}
Это извращение сделано вместо того, чтобы просто создать отдельный класс для записи датагрида.
Я даже не представляю, в каком состоянии надо быть, чтобы такое написать.
+135
private void tbMain_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
TextBox thisTextBox = (sender as TextBox);
e.Handled = (!(Char.IsDigit(e.Text, 0) && !((thisTextBox.Text.IndexOf("-") == 0) && thisTextBox.SelectionStart == 0))) &&
((e.Text.Substring(0, 1) != "-") || (thisTextBox.Text.IndexOf("-") == 0) || thisTextBox.SelectionStart != 0) &&
((e.Text.Substring(0, 1) != ".") || (thisTextBox.Text.IndexOf(".") != -1) || (thisTextBox.SelectionStart == 0) || (!Char.IsDigit(thisTextBox.Text.Substring(thisTextBox.SelectionStart - 1, 1), 0)) || ((thisTextBox.Text.IndexOf(",") != -1))) &&
((e.Text.Substring(0, 1) != ",") || (thisTextBox.Text.IndexOf(",") != -1) || (thisTextBox.SelectionStart == 0) || (!Char.IsDigit(thisTextBox.Text.Substring(thisTextBox.SelectionStart - 1, 1), 0)) || ((thisTextBox.Text.IndexOf(".") != -1)));
}
+98
flag:=true;
if keyList = nil then
begin
new(keyList);
new(keylist^.HisTerms);
new(keylist^.hisChapter);
keyList^.value:= HashFunction(edit1.Text);
keylist^.hisChapter^.number:=strtoint(edit2.Text);
keylist^.HisTerms^.TheTerm:=edit1.Text;
keylist^.HisTerms^.hisPage:=keylist^.hisChapter;
keylist^.HisTerms^.hisKey:=keylist^.value;
keylist^.hisChapter^.nextPage:=nil;
keylist^.HisTerms^.nextTerm:=nil;
memo1.Lines.Add(edit1.Text + ' (' + edit2.Text+')');
end
else
begin
keyTemp:=keylist;
temp:=HashFunction(edit1.Text);
if keytemp^.value = temp then
begin
termtemp:=keytemp^.HisTerms;
chaptertemp:=keytemp^.hisChapter;
while termtemp^.nextTerm<> nil do
termtemp:=termtemp^.nextTerm;
while chaptertemp^.nextPage<> nil do
chaptertemp:=chaptertemp^.nextPage;
new(termtemp^.nextTerm);
new(chaptertemp^.nextPage);
chaptertemp^.nextPage^.number:=strtoint(edit2.Text);
termtemp^.nextTerm^.TheTerm:=edit1.Text;
termtemp^.nextTerm^.nextTerm:=nil;
chaptertemp^.nextPage^.nextPage:=nil;
termtemp^.hisKey:=HashFunction(edit1.Text);
termtemp^.hisPage:=chaptertemp^.nextPage;
flag:=false;
end
else
keytemp:=keytemp^.NextKey;
if not(flag) then
begin
keytemp:=keylist;
while keytemp^.NextKey<>nil do
keytemp:=keytemp^.NextKey;
new(keytemp^.NextKey);
new(keytemp^.NextKey^.HisTerms);
new(keytemp^.NextKey^.hisChapter);
keytemp^.NextKey.value:=HashFunction(edit1.Text);
keytemp^.NextKey^.hisChapter^.nextPage:=nil;
keytemp^.NextKey^.HisTerms^.nextTerm:=nil;
keytemp^.NextKey^.hisChapter^.number:=strtoint(edit2.Text);
keytemp^.NextKey^.HisTerms^.TheTerm:=edit1.Text;
keytemp^.NextKey^.HisTerms^.hisPage:=keytemp^.NextKey^.hisChapter;
keytemp^.NextKey^.HisTerms^.hisKey:=HashFunction(edit1.Text);
end;
Создание хэш-таблицы терминов и добавление каждому термину под-термина.
−161
$iq = tep_db_query('/* Вывод детальной информации по заданному неоригинальному изделию (ART_ID) */
/* Общая информация об изделии */
/* ART_ARTICLE_NR - Номер артикула */
/* SUP_BRAND - Название производителя изделия */
/* ART_COMPLETE_DES_TEXT - Описание изделия */
SELECT
ART_ID,
ART_ARTICLE_NR,
ART_SEARCH_NR,
SUP_BRAND,
TD_DES_TEXTS.TEX_TEXT AS ART_COMPLETE_DES_TEXT,
products_id,
products_price,
products_quantity
FROM
TD_ARTICLES
INNER JOIN TD_DESIGNATIONS ON TD_DESIGNATIONS.DES_ID = ART_COMPLETE_DES_ID
INNER JOIN TD_DES_TEXTS ON TD_DES_TEXTS.TEX_ID = TD_DESIGNATIONS.DES_TEX_ID
INNER JOIN TD_SUPPLIERS ON SUP_ID = ART_SUP_ID
JOIN products ON products_search_art = ART_SEARCH_NR
JOIN td_suppliers_to_price ON products_brand = stp_price_brand AND products_price_id = stp_price_id AND ART_SUP_ID = stp_td_sup_id
WHERE
ART_ID = '.$art['LA_ART_ID'].' AND
TD_DESIGNATIONS.DES_LNG_ID = 16; ');
"Отправлю ка я в СУБД немного комментариев, чтобы ему было проще разобраться что тут происходит"
+85
private boolean isWrapper(Class<?> candidateWrapperClass) {
return candidateWrapperClass.equals(Byte.class) ? true
: candidateWrapperClass.equals(Boolean.class) ? true
: candidateWrapperClass.equals(Character.class) ? true
: candidateWrapperClass.equals(Short.class) ? true
: candidateWrapperClass
.equals(Integer.class) ? true
: candidateWrapperClass
.equals(Long.class) ? true
: candidateWrapperClass
.equals(Float.class) ? true
: candidateWrapperClass
.equals(Double.class) ? true
: false;
}
Просто метод для проверки, является ли класс оберткой примитива.
Отсюда https://github.com/mtedone/podam/blob/master/src/main/java/uk/co/jemos/podam/api/PodamFactoryImpl.java
+138
if(argc > 6){
for(arg = argv[6]; strlen((char *)arg) >= 17 &&
isdigit(arg[0]) &&
isdigit(arg[1]) &&
isdigit(arg[3]) &&
isdigit(arg[4]) &&
isdigit(arg[6]) &&
isdigit(arg[7]) &&
isdigit(arg[9]) &&
isdigit(arg[10]) &&
isdigit(arg[12]) &&
isdigit(arg[13]) &&
isdigit(arg[15]) &&
isdigit(arg[16])
; arg+=18){
int t1, t2;
struct period *sp;
t1 = (arg[0] - '0') * 10 + (arg[1] - '0');
t1 = (t1 * 60) + (arg[3] - '0') * 10 + (arg[4] - '0');
t1 = (t1 * 60) + (arg[6] - '0') * 10 + (arg[7] - '0');
t2 = (arg[9] - '0') * 10 + (arg[10] - '0');
t2 = (t2 * 60) + (arg[12] - '0') * 10 + (arg[13] - '0');
t2 = (t2 * 60) + (arg[15] - '0') * 10 + (arg[16] - '0');
if(t2 < t1) break;
sp = myalloc(sizeof(struct period));
if(sp){
sp->fromtime = t1;
sp->totime = t2;
sp->next = acl->periods;
acl->periods = sp;
}
if(arg[17]!=',') break;
}
}
Получение временных диапазонов, из https://github.com/z3APA3A/3proxy/blob/devel/src/3proxy.c#L1470
Основное говно в том, что нифига не проверяются входные данные т.е. секунд и минут может быть больше 59, а часов может быть больше 23. И проверку if(t2 < t1) лучше заменить на if(t2 <= t1)
А еще там в том исходнике в качестве отступов используются и пробелы и табы. Вообще там очень много говнокода
−124
if __name__ == "__main__":
def f():
pass
Динамичненько