1. C# / Говнокод #24483

    0

    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
    private void OutputLabels(DataTable dt)
    {
       string label; 
    
       // Iterate rows of table
       foreach (DataRow row in dt.Rows)
       {
          int labelLen;
          label = String.Empty;
          label += AddFieldValue(label, row, "Title");
          label += AddFieldValue(label, row, "FirstName");
          label += AddFieldValue(label, row, "MiddleInitial");
          label += AddFieldValue(label, row, "LastName");
          label += AddFieldValue(label, row, "Suffix");
          label += "\n";
          label += AddFieldValue(label, row, "Address1");
          label += AddFieldValue(label, row, "AptNo");
          label += "\n";
          labelLen = label.Length;
          label += AddFieldValue(label, row, "Address2");
          if (label.Length != labelLen)
             label += "\n";
          label += AddFieldValue(label, row, "City");
          label += AddFieldValue(label, row, "State");
          label += AddFieldValue(label, row, "Zip");
          Console.WriteLine(label);
          Console.WriteLine();
       }
    }
    
    private string AddFieldValue(string label, DataRow row, 
                                 string fieldName) 
    {                                
       if (! DBNull.Value.Equals(row[fieldName])) 
          return (string) row[fieldName] + " ";
       else
          return String.Empty;
    }

    label не используется в AddFieldValue. Официальный пример MS - https://docs.microsoft.com/en-us/dotnet/api/system.dbnull.value?view=netframework-4.7.2

    gogishvilli001, 12 Июля 2018

    Комментарии (90)
  2. Assembler / Говнокод #24481

    −1

    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
    ; минимальная .COM программа, которую я смог высрать в ascii
    ; генерит ret и передаёт на него управление
    ; пробел (and r/m8, reg) я тоже не использовал
    ; писалась в hex-кодах
    
    push 314ah
    pop ax
    xor ax, 3070h
    push ax
    pop bx
    pop ax
    push ax
    xor ah, [bx]
    sub [bx], ah
    pop ax
    push ax
    dec ax
    xor ax, 3c3ch
    xor bx, ah
    jnz 013ah

    hJ1X5p0P[XP2'('XPH5<<0'u!
    Мой малинькый скукожоный моск очинь долго мучился, прежде чем родить это. Так что, не судити строго. :)

    666_N33D135, 11 Июля 2018

    Комментарии (105)
  3. Куча / Говнокод #24480

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // Making Wrong Code Look Wrong
    // by Joel Spolsky
    // https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/
    
    us = UsRequest("name")
    usName = us
    recordset("usName") = usName
    sName = SFromUs(recordset("usName"))
    WriteS sName

    В упомянутой роскомговном статье «Making Wrong Code Look Wrong» Спольски упоминает венгерскую нотацию, как способ to make wrong code look wrong.
    Я хотел бы обсудить ЯП, в котором поверх (допустим, динамической) системы типов есть некоторый набор правил, основанный на Apps Hungarian. У переменных и функций сравниваются префиксы, и язык не даёт тебе присвоить количество мух в переменную, которая хранит количество слонов, хотя и то и то — int. Если же ты знаешь, что делаешь, можно использовать функции вида <prefix>From<suffix> и <prefix>To<suffix>, причем во избежание бойлерплейта, можно положить все такие функции существующими и тривиальными (возвращающими входное значение), если не определено другое.

    Что хорошего и плохого было бы в таком языке? Дискасс.

    vistefan, 11 Июля 2018

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    while (reconnect)
    {
        ...
        reconnect = false;
        ...
    }

    gogishvilli001, 11 Июля 2018

    Комментарии (1)
  5. Куча / Говнокод #24475

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    До чего докатился интернет.
    Вместо того, чтобы сделать запрос к какому-то сайту с минимальным
    временем отклика, мы "связываемся" с неким компом, который физически
    находится где-то за океаном, тот в свою очередь через своего америкосского
    провайдера обращается к нашему сайту, и отправляем нам результат.
    Ну не пиздец ли?

    Какой багор )))

    guestinxo, 10 Июля 2018

    Комментарии (4)
  6. C++ / Говнокод #24474

    0

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <inttypes.h>
    
    void test1(void)
    {
      printf("test1\n");
    }
    void test2(void)
    {
      printf("test2\n");
    }
    void test3(void)
    {
      printf("test3\n");
    }
    void test4(void)
    {
      printf("test4\n");
    }
    
    uint8_t func_dist[3] = {(uint8_t)((char *)test2-(char *)test1), (uint8_t)((char *)test3-(char *)test2), (uint8_t)((char *)test4-(char *)test3)};
    
    void callf(uint8_t fn)
    {
      size_t sum_dis = 0;
      for (uint8_t i = 0; i < fn; i++)
      {
        sum_dis += func_dist[i];
      }
      ( (void(*)(void)) ((char *)test1+sum_dis) )  ();
    }
    
    int main(void)
    {
      callf(0);
      callf(1);
      callf(2);
      callf(3);
      return EXIT_SUCCESS;
    }

    Зожатие указателей. Главное чтоб длины функций не превышали 255 и чтоб функции шли строго подряд, как они объявлены кода
    Как сделать чтобы это компилировалось сишкой?

    j123123, 10 Июля 2018

    Комментарии (12)
  7. 1C / Говнокод #24465

    +1

    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
    ВЫБРАТЬ
    	ПоступлениеТоваровУслуг.Ссылка,
    	ПоступлениеТоваровУслуг.Дата,
    	ПоступлениеТоваровУслуг.Контрагент,
    	ПоступлениеТоваровУслуг.Организация,
    	ДополнительныеСведения.Значение КАК ДатаВозврата
    ПОМЕСТИТЬ втДокументы
    ИЗ
    	Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
    		ПО ПоступлениеТоваровУслуг.Ссылка = ДополнительныеСведения.Объект
    ГДЕ
    	ДополнительныеСведения.Значение ЕСТЬ NULL
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    	ПоступлениеУслугПрочихАктивов.Ссылка,
    	ПоступлениеУслугПрочихАктивов.Дата,
    	ПоступлениеУслугПрочихАктивов.Контрагент,
    	ПоступлениеУслугПрочихАктивов.Организация,
    	ДополнительныеСведения.Значение
    ИЗ
    	Документ.ПоступлениеУслугПрочихАктивов КАК ПоступлениеУслугПрочихАктивов
    		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
    		ПО ПоступлениеУслугПрочихАктивов.Ссылка = ДополнительныеСведения.Объект
    ГДЕ
    	ДополнительныеСведения.Значение ЕСТЬ NULL
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    	втДокументы.Ссылка КАК Ссылка,
    	втДокументы.Дата КАК Дата,
    	втДокументы.Контрагент,
    	втДокументы.Организация,
    	втДокументы.ДатаВозврата
    ИЗ
    	втДокументы КАК втДокументы
    ГДЕ
    	втДокументы.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    	И втДокументы.Ссылка.Проведен
    	И втДокументы.ДатаВозврата ЕСТЬ NULL
    {ГДЕ
    	втДокументы.Контрагент.*,
    	втДокументы.Организация.*}
    
    УПОРЯДОЧИТЬ ПО
    	Дата,
    	Ссылка

    Охуительная оптимизация запроса временными таблицами, а ведь на первый взгляд даже не говнокод

    ChoaNyan, 10 Июля 2018

    Комментарии (1)
  8. Python / Говнокод #24464

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    import re
    
    brabrebrized = lambda s, repl = r"бр\1": (
        re.sub(
            "[йцкнгшщзхъфвпрлджчсмтьб]+([аеёиоуыэюя])",
            repl,
            s,
            flags = re.IGNORECASE
        )
    )

    Я ебрабрубря и брабрибрал брабрибраброр бребров. брибрер:
    брибрит брёбра бра брабробре,
    бробрит ябра в абребробре.
    брибрия! брибрия!
    бря брабрубра брибряя!

    666_N33D135, 09 Июля 2018

    Комментарии (10)
  9. Java / Говнокод #24461

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public static final int CURENT_MILLENIUM = 2000; //must be changed in year 3000
    
    public int year;
    
    public void setYear(String year) {
      if (Integer.valueOf(year) < 100) {
        year = String.valueOf(CURENT_MILLENIUM + Integer.valueOf(year)).toString();
      }
      this.year = Integer.valueOf(year);
    }

    Ray_Mints, 09 Июля 2018

    Комментарии (4)
  10. Куча / Говнокод #24460

    −2

    1. 1
    Хотели бы вы, чтобы прелестница-кудесница засунула вам в попу свою волшебную палочку?

    Я прелестница-кудесница, и у меня есть волшебная палочка.

    Сим-салапим!
    Ахалай-махалай!
    Зад подставляй!
    Вжжжух!

    666_N33D135, 09 Июля 2018

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