-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+135
- 1
- 2
- 3
- 4
- 5
- 6
FileInfo[] fi = new DirectoryInfo(di.FullName).GetFiles();
var creationList = from file in fi
where file.CreationTime.CompareTo(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day)) < 0 //This instance is earlier than value.
group file.CreationTime by DateTime.Parse(file.CreationTime.ToString("yyyy-MM-dd")) into ct
select ct.Key;
что делает этот код?
taburetka,
24 Января 2014
-
+135
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
Структура для хранения данных:
typedef struct rs_script_t {
int status; // on/off
int next_stage;
int next_time;
} rs_script_t;
Макросы:
#define SEQ(scr1,t) \
const int scr_zero = __COUNTER__; \
rs_script_t *scr = scr1; \
if ( (scr->status) && (t > scr->next_time) ) { \
switch(scr->next_stage) { \
#define END_SEQ } };
#define SEQ_FIRST \
case 0: \
scr->next_stage = scr_zero;
#define SEQ_DT(dt) \
scr->next_stage = __COUNTER__ + 1; \
scr->next_time += dt; \
break; \
case __COUNTER__: \
#define SEQ_DT_TAGGED(dt,tag) \
scr->next_stage = __COUNTER__ + 1; \
scr->next_time += dt; \
break; \
case __COUNTER__: \
case (100000+tag): \
#define SEQ_LAST_DEFAULT \
scr->status = 0; \
break; \
\
default: \
DEBUG10f(":: ERROR, unknown stage position: %d \n", scr->next_stage); \
break;
#define SEQ_GOTO(dt,tag) \
scr->next_stage = 100000+tag; \
scr->next_time += dt; \
break;
#define SEQ_GOTO_INSTANT(tag) \
scr->next_stage = 100000+tag; \
break;
Пользоваться примерно так:
void process() { // вызывать каждый кадр
SEQ(&scrtest, rs_app.app_time)
SEQ_FIRST
printf("Ноль\n");
SEQ_DT(1000)
printf("Один\n");
SEQ_DT(1000)
printf("Два\n");
SEQ_DT_TAGGED(1000, 555)
printf("Три (метка №555) \n");
SEQ_DT(1000)
printf("Четыре\n");
SEQ_DT(1000)
printf("Пять\n");
SEQ_DT(1000)
printf("Шесть, повторяем с метки №555, если нажат Шифт\n");
if (rs_keyboard_is_key_down(RS_KEY_SHIFT_L)) {
SEQ_GOTO(1000, 555);
};
printf("Завершаем. \n");
SEQ_LAST_DEFAULT
END_SEQ;
};
Страдания по yield
TarasB,
23 Декабря 2013
-
+135
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
$(function () {
var objects = [
@foreach (var item in Model.PlannedObjectSet)
{
<text>{ Address: '@item.Address', Name: '@item.Name', Id: @item.Id, date: '@item.PlannedStartDate', type: @item.ObjectType, Coords: @(item.Coords ?? "null") }@(item == Model.PlannedObjectSet.Last() ? "" : ",")</text>
}
];
$('#map').tenderMap({mode:'p', zoom:10, center:[55.83, 37.58]});
$('#map').tenderMap('showData', objects);
});
Вот такая вот сериализация в JSON встретилась мне сегодня в коде Razor view
xumix,
14 Декабря 2013
-
+135
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
void permutate(int a[10], int n) {
// God bless mr. Donald E. Knuth;
// Tons of oil to English bell ringers!
// WARNING: It's dangerous to go alone, take this^H read this shit
int c[10], o[10], j, s, q;
for (j = 1; j <= n; j++) {
c[j] = 0;
o[j] = 1;
}
while (1) {
check(a, n);
j = n;
s = 0;
while (1) {
do {
q = c[j] + o[j];
if (q < 0) { o[j] = -o[j]; --j; }
} while (q < 0);
if (q == j) {
if (j == 1) return; else ++s;
o[j] = -o[j];
--j;
continue;
}
int t = a[j - c[j] + s];
a[j - c[j] + s] = a[j - q + s];
a[j - q + s] = t;
c[j] = q;
break;
}
}
}
Реализация алгоратма "простых изменений" по описанию из Кнута (т4. Комбинаторный поиск, генерация всех перестановок).
Напрашивающиеся goto раздражают, было бы приятно увидеть менее пахучие реализации. Не смог нагуглить, забугорного названия этого алгоритма не знаю, а про "простые изменения" тинай вики молчит.
vistefan,
13 Декабря 2013
-
+135
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
string str = Console.ReadLine();
int k = str.length; int n = 0;
for (int i = 0; i< k; i=i+1)
{
if (str[i] == ' ')
n = n + 1;
}
string[] arr = new string[n+1]();
for (int i = 0;i<n+1;i=i+1)
{
arr[i]='';
}
for (int i = 0;i<n+1;i=i+1)
{
int a = str.IndexOf(' ');
string b = str.Substring(0,a);
arr[i] = b;
if (i != n)
str = str.Remove(0,a+1);
else
str = str.Remove(0,a);
}
for (int i = 0;i<n+1;i=i+1)
{
str = str + arr[i] + ' ';
}
str = str.Remove(k-2,1);
Православная функция Split() по пробелу:
1. Объявляем необходимые переменные;
2. Считаем количество пробелов;
3. Заполняем массив пустыми строками (ВАЖНО!!!);
4. Ищем в исходной строке пробелы, записываем в массив подстроку, удалям подстроку с пробелом из исходной строки;
5. Восстанавливаем исходную строку по эелементам массива (ВАЖНО!!!).
NitrOxygeN,
05 Декабря 2013
-
+135
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
static int
wl_iw_get_country(
struct net_device *dev,
struct iw_request_info *info,
union iwreq_data *wrqu,
char *extra
)
{
char *ccode;
int current_channels;
WL_TRACE(("%s\n", __FUNCTION__));
ccode = dhd_bus_country_get(dev);
if(ccode){
if(0 == strcmp(ccode, "Q2"))
current_channels = 11;
else if(0 == strcmp(ccode, "EU"))
current_channels = 13;
else if(0 == strcmp(ccode, "JP"))
current_channels = 14;
}
sprintf(extra, "Scan-Channels = %d", current_channels);
printk("Get Channels return %d,(country code = %s)\n",current_channels, ccode);
return 0;
}
На этот раз отличился броадком.
Подсказка: Пользователи с кантри-кодом RU должны СТРАДАТЬ!
Necromant,
25 Ноября 2013
-
+135
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
if (btnFromRecorder.Text == "Запись с микрофона")
{
_Recorder._OnlyAudioReconition.StartRecognition();
btnFromRecorder.Text = "Остановить запись";
// запускаем ожидающий поток
_stateOfWaitingThread = StateOfWaitingThread.UsedByRecorder;
// запуск потока
_ThreadWaitingForEndOfProcess = new Thread(ThreadWaitingForEndOfPlayingProcessing);
_ThreadWaitingForEndOfProcess.Name = "ThreadWaitingForEndOfProcess";
_ThreadWaitingForEndOfProcess.Start();
}
else
{
_Recorder._OnlyAudioReconition.FinishRecognition();
btnFromRecorder.Text = "Запись с микрофона";
}
вот, нашелся кусочек старого говнеца от бывшего насяльника. Из серии - зачем нам лишние булевы переменные в коде. + важное замечание _OnlyAudioReconition - это поле... public поле... Инкапсуляция? неее, не слышали.:-))))
CraxyFright,
19 Октября 2013
-
+135
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
bool exit = false;
while (!exit)
{
if (Console.KeyAvailable)
{
ConsoleKeyInfo key = Console.ReadKey(true);
exit = true;
}
}
Православная замена Console.ReadKey();
adoconnection,
09 Октября 2013
-
+135
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
private void Button2_Click(object sender, EventArgs e)
{
this.Label4.Text = new StreamReader("C:\\Program Files\\Microsoft Visual Studio 10.0\\VB\\VBProjects\\датаметр\\датаметр\\bin\\Release\\Key.txt").ReadLine();
if (Operators.CompareString(this.Label4.Text, "vrc5rhhgyuuoxr45", false) == 0)
{
this.Button1.Visible = true;
this.TextBox1.Visible = true;
this.Label1.Visible = true;
this.Label4.Visible = false;
this.Button2.Visible = false;
this.Label3.Visible = true;
int num = (int) Interaction.MsgBox((object) "Ключ верный.\r\nНе сообщайте его никому !!\r\nИ не потеряйте.", MsgBoxStyle.OkOnly, (object) null);
}
else
this.Label4.Text = "Ключ не верный !!\r\nПоменяйте его в файле \"Key\"";
}
Классное расположение файла. Причём в архиве лежит пустой файл Key.txt рядом с программой...
Как надо было извратиться, чтобы в коде оказался не просто абсолютный путь, но и вот такой-вот с Program Files, ведь по умолчанию VS создаёт проекты в Моих документах
http://www.cyberforum.ru/vb-net/thread971437.html
Qwertiy,
08 Октября 2013
-
+135
- 1
return ((((num & ~(0xFFFFFFFF << n)) >> (n - 0x1)) & 0x1) == 0x1) ? ((num & ~(0xFFFFFFFF << n)) ^ ~(0xFFFFFFFF << n)) + 0x1 : (num & ~(0xFFFFFFFF << n));
EON8ight,
01 Сентября 2013