1. Pascal / Говнокод #13769

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    type
      TCriricalThread = class (TThread)
      private
        FileS    : integer;
        Percent  : integer;
        DlSize   : integer;
        procedure SetMaxPos;
        procedure SetCurPos;
        procedure LockButton;
        procedure DislockButton;
      protected

    Ну, уж если есть критические секции, почему бы не сделать критический поток?
    TCriricalThread = class (TThread)

    Stertor, 11 Сентября 2013

    Комментарии (60)
  2. Си / Говнокод #13768

    +129

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    #include <stdio.h>
    #include <dlfcn.h>
    #include <getopt.h>
    #include <string.h>
    #include <stdlib.h>
    
    #define int64 long long
    
    const char* help =
    "       -h,--help  это сообщение\
            -f,--func  имя функции\
            -n,--num   количество аргументов функции\
            -a,--arg1  первый аргумент\
            -b,--arg2  второй аргумент";
    
    struct option longopts[] ={
            {"func",1,NULL,'f'},
            {"help",1,NULL,'h'},
            {"num", 1,NULL,'n'},
            {"arg1",1,NULL,'a'},
            {"arg2",1,NULL,'b'},
            {0,0,0,0}
    };
    
    void strtoa(void** arg, char* optarg){
        int tmp;
        char* e;
        tmp = strtol(optarg,&e,10);
        if (e != optarg + strlen(optarg)){
            *arg = malloc(strlen(optarg));
            strcpy((char*)*arg,optarg);
        } else *arg = (void*)tmp;
    
    }
            
    int64 main(int argc, char** argv){
      
      int opt, num = 0;
      void *a,*b;
      char* e;
    
      void* (*func2)(void*,void*), 
            (*func1)(void*), 
            (*func0)(), *func = 0;
      
      while((opt = getopt_long(argc,argv,"f:h:n:a:b:",longopts,NULL)) != -1){
          switch (opt){
              case 'h':
                  fprintf(stderr,"%s",help);
                  exit(0);
              case 'f':
                  func = dlsym(NULL,optarg);
                  break;
              case 'n':
                  num = atoi(optarg);
                  if (num > 2) exit(1);
                  break;
              case 'a':
                  strtoa(&a,optarg);
                  break;
              case 'b':
                  strtoa(&b,optarg);
                  break;
          }
      }
      
      if(func != 0){
          switch (num){
              case 0: 
                func0 = func;
                (*func0)();
                break;
              case 1:
                func1 = func;
                (*func1)(a);
                break;
              case 2:
                func2 = func;
                (*func2)(a,b);
          }
      }
      
      return 0;
    }

    Запускает любую функцию линукс, содержащую до 2-х аргументов. В хелпе все написано. Собирать так c флагом -dl.
    Использовать так:
    a.out -f sleep -n 1 -a 1 - sleep на 1 секунду
    a.out -f printf -n 1 -a OK - выводит без конца строки
    вдохновлен этим:
    http://govnokod.ru/13763

    Я, crastinus97, говорю вам: этого способа нет в man. Я его сам открыл.

    crastinus, 11 Сентября 2013

    Комментарии (27)
  3. JavaScript / Говнокод #13767

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var x = 43;
    var y = 34;
    var z = x++ + --y;
    console.log(z);
    console.log(y);
    console.log(x);

    %D

    Stealth, 11 Сентября 2013

    Комментарии (18)
  4. JavaScript / Говнокод #13766

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var i = 9;
    for(;;){
        if(i === 0)break;
        console.log(i);
        i--;
    }

    Stealth, 11 Сентября 2013

    Комментарии (0)
  5. JavaScript / Говнокод #13765

    +140

    1. 1
    if(!false && ( false || (false && true) )) alert("Guess what...");

    Stealth, 11 Сентября 2013

    Комментарии (0)
  6. PHP / Говнокод #13764

    +155

    1. 1
    data-selected-items='[<? $i=0; foreach($children_items as $child) {echo '{"id":"'.$child['id'].'", "text":"'.addslashes($child[$item_title_column]).'"}'; if( ++$i != count($children_items) ) echo ',';} ?>]'

    json_encode не слышали

    jfhs, 10 Сентября 2013

    Комментарии (24)
  7. Pascal / Говнокод #13763

    +80

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    Главная » Усыпление программы
    Усыпление программы
    Автор: -Гепард97-
    Написать автору
    [просмотров 751]
    
    В VBS есть функция wscript.sleep, позволяющая усыпить скрипт. Но как такое сделать в VB? Ответ прост: делаем новый модуль и пишем код:
    
    Public Declare Sub Sleep Lib "kernel32" (byval dwMilliseconds As Long)
    
    И все. Когда прогу нужно усыпить, просто пишем в коде проги, если например прога должна остановиться на 2 секунды то пишем
    
    Sleep 2000
    
    Этого способа нет на MSDN, я его сам отрыл

    Билл Гатэс прочел это и уснул...
    Z-z-z-z...

    Stertor, 10 Сентября 2013

    Комментарии (113)
  8. Objective C / Говнокод #13762

    −111

    1. 1
    Character * c = Character.alloc.init.autorelease;

    К чему приводит излишняя либеральность синтаксиса

    NAlexN, 10 Сентября 2013

    Комментарии (11)
  9. 1C / Говнокод #13761

    −167

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    Если ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003726") Тогда //000003726 - Автолюкс 
    	СлужбаДоставкиВСМС = "AvtoLux";
    ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003727") Тогда //000003727 - Гюнсел 
    	СлужбаДоставкиВСМС = "GUNSEL";
    ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003725") Тогда //000003725 - Интайм 
    	СлужбаДоставкиВСМС = "InTime";
    ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003826") Тогда //000003826 - Мист экспресс
    	СлужбаДоставкиВСМС = "Meest-express";
    ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003932") Тогда //000003932 - Киевские ведомости 
    	СлужбаДоставкиВСМС = "Kievskie vedomosti"	
    ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003722") Тогда //000003722 - Новая почта
    	СлужбаДоставкиВСМС = "Nova Poshta";	
    ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003729") Тогда //000003729 - Ночной экспресс
    	СлужбаДоставкиВСМС = "Nochnoi express";
    ИначеЕсли ЗапросСлужбаДоставки.Ссылка = Справочники.Контрагенты.НайтиПоКоду("000003728") Тогда //000003728 - САТ
    	СлужбаДоставкиВСМС = "CAT";
    //.....
    
    КонецЕсли;

    Почти универсальный способ транслитизации наименования контрагента.

    rull9ss, 10 Сентября 2013

    Комментарии (44)
  10. PHP / Говнокод #13759

    +157

    1. 1
    2. 2
    3. 3
    public function set($index) {
    	$this->data[$name] = $val;
    }

    Встретился метод при рефакторинге :-)

    aleksssmix, 10 Сентября 2013

    Комментарии (7)