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

    −15

    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
    kinds.AddError("error", "error: <0>");
    kinds.AddAttention("attention", "warning: <0>");
    kinds.AddNormalMessage("message", "<0>");
    kinds.AddError("out_of_bounds", "<0> out of <1>..<2>");
    kinds.AddError("dont_be_here", "Should dont be here!");
    kinds.AddError("not_found", "<0> not found!");
    kinds.AddError("not_equal", "<0> not equals <1>");
    kinds.AddError("equal", "<0> equals <1>, but they must be differrence!");
    kinds.AddError("equals_null", "<0> is null!!");
    kinds.AddError("excess_item", "Item '<0>' is excess");
    kinds.AddError("expected_item", "Expected '<0>'");
    kinds.AddError("unexpected_item", "Encountered unexpected item '<0>'");
    kinds.AddError("wrong_item", "Wrong item '<0>'");
    kinds.AddError("expected_other_item", "Expected '<0>' but encountered '<1>'");
    kinds.AddError("unknown_item", "item '<0>' is unknown");
    kinds.AddError("file_not_found", "File '<0>' not found");
    kinds.AddError("wrong_file_extension", "File '<0>' has wrong extension");
    kinds.AddError("expected_eol", "Expected end of line but encountered '<0>'");
    kinds.AddError("expected_not_eol", "End of line unexpected!");
    
    // ...
    
    private void MakeTplParams(object[] originalTplParams)
    {
    	Object[] obj = originalTplParams;
    	String[] str = new String[obj.Length];
    	int length = str.Length;
    	for (int i = 0; i < length; i++)
    	{
    		str[i] = !Object.ReferenceEquals(obj[i], null) ? obj[i].ToString() : "";
    	}
    	tplParams = str;
    }
    
    
    private String MakeText(String tpl)
    {
    	if (tpl != "") return this.MakeTextByTemplate(tpl);
    	return this.MakeDefaultText();
    }
    
    private String MakeTextByTemplate(String tpl)
    {
    	String builder = tpl;
    	int length = tplParams.Length;
    	for (int i = 0; i < length; i++)
    	{
    		builder = builder.Replace("<" + i + ">", (tplParams[i]));
    	}
    	return builder;
    }
    
    private String MakeDefaultText()
    {
    	String builder = "";
    	builder += "[" + kindName + "] :";
    	int length = tplParams.Length;
    	for (int i = 0; i < length; i++)
    	{
    		builder += (tplParams[i]) + "; ";
    	}
    	return builder;
    }

    Он сказал, что string.Format томозит и предложил замену

    Запостил: dm_fomenok, 18 Февраля 2017

    Комментарии (35) RSS

    • Строки не локализованы. Уволить к хуям, таски перевесить на индусов. Полыхаев.
      Ответить
      • Строки не лолизованы. Уволить к хуям, таски перевесить на японцев. Десу.
        Ответить
        • Простите, это же говнокод? Чем закончился евангелион?
          Ответить
          • Он ещё не закончился. Ребилд - это не повторение событий, а продолжение.
            Ответить
            • Ребилд - это не повторение событий, а ересь.
              Ответить
              • Разумеется, но стоит отметить, что в начале ребилда океаны уже из LCL.
                Ответить
      • Локализация не нужна и вредна. Премировать, таски перевести на английский. Long live the Queen!
        Ответить
    • Это говно скучное и неинтересное, поэтому я лучше расскажу, как у меня загрузчик в 446 байт не умещается
      Ответить
      • > в 446 байт не умещается
        Засунь в эти 446 байт простенький загрузчик загрузчика.
        Ответить
        • Так я и засунул
          P.S. мне было настолько лень все переписывать, что я скопипастил 32-битный код и заюзал как 16-битный. И даже заработало
          Ответить
      • Мбр не нужен
        Ответить
        • Однажды с одним из суперкомпьютеров Cray случилась проблема. Слетел загрузчик. Инженеры позвонили в техподдержку Cray Computer Corporation.
          - У нас проблема, на нашем Cray-1 слетел загрузчик.
          - Ситуация нештатная - мы в первый раз сталкиваемся с такой проблемой. Подожите пожалуйста на линии, я посмотрю, что можно сделать.
          ...
          - Это очень старая модель, и мы не можем сейчас найти загрузчика, чтобы прислать его Вам. Пожалуйста, не волнуйтесь, я вас сейчас соединю с мистером Креем.
          - А как он поможет, ведь...
          - Он поможет.
          ...
          - Сеймур Крэй слушает.
          - Здравствуйте мистер Крэй, у нас потерялся загрузчик, и в техподдержке сказали, что у вас не осталось его кода...
          - Пишите.
          - Что?
          - Берите ручку и пишите. A0 BF 10 05 ...
          Крэй диктовал 4 килобайта загрузчика по памяти.
          Ответить
          • ...Но он не запустился
            Ответить
            • А дальше что было?
              Ответить
              • Мистер Крэй взбесился, начал называть всех питухами и анкилябрами, грозился приехать и всех сводить в кино, но потом ему сделали укол и он пошел читать александреску
                Ответить
                • Но ведь Александреску писал про C++ и D, а все языки, кроме божественной сишечки, только для анскилябр заедушных.

                  Неужели так укол действует?
                  Ответить
                  • Я знаю только то, что все уебки с непомерный чсв читают Александреску. (даже есть они вебпрограммисты, да)
                    Ответить
                    • А я всё ломал голову, почему меня не тянет читать Александреску. Вот прямо совсем не хочу его читать.
                      Ответить
                      • я пробовал - ничего не вышло. Сразу страницы заблевываю
                        Ответить
                      • >> все уебки с непомерный чсв читают Александреску.
                        > почему меня не тянет читать Александреску

                        Пора опять "поиграть шрифтамикванторами"
                        Из ∀u ∈ U: u читал Александреску не следует, что ¬∃x ∉ U: x читал Александреску, где U = {все уебки с непомерный чсв}

                        Я вот читал Александреску, и мне понравилось. Гораздо интереснее, чем унылая книга страуструпа.
                        Ответить
                      • Зачем читать книги, когда можно прочитать, например, msdn. И то полезнее будет
                        Ответить
                        • зачем читать когда можно писать?
                          Ответить
                        • > прочитать, например, msdn
                          LRESULT MyFooBarExW(LPCTSTR lpszReserved);
                          Ответить
                          • Поди, в реестре нужно какой-нибудь OLE-сервер зарегистрировать, чтобы заработало?
                            Ответить
                            • @LRESULT MyFooBarExW(LPCTSTR lpszReserved);
                              Уже ясно, что эта штука для com-извращений...

                              @LPCTSTR lpszReserved
                              А вот эта неведомая хуйна меня ввергла в ступор: функция хочет указатель на нуль-терминированную строку, при этом параметр - зарезервирован...
                              trollface.JPG.vbs
                              Ответить
                              • Наверное, перед вызовом нужно выделить память, которую функция будет использовать под свои нужды, а потом можно освободить.

                                Выделение памяти вынесли наружу, чтобы функция лишний раз не дёргала аллокатор, если у нас уже есть ненужный кусок памяти.
                                Ответить
                                • @Наверное, перед вызовом нужно выделить память
                                  Ну да, почти весь API так работает. Но посмотрите:
                                  LPCTSTR lpszReserved
                                  Зарезервированные параметры не положено ведь трогать...
                                  Ответить
                                  • Может быть, сейчас Reserved, а после десятого сервис-пака будет использоваться?
                                    Ответить
                                    • Очевидно, так...
                                      Ответить
                                    • > сейчас Reserved
                                      Именно так. А то некуда будет добавить параметр, если он вдруг понадобится. А пока пусть ебутся и передают NULL.
                                      Ответить
          • >найти загрузчика
            Он одушевленный? Небось азиат какой?
            Ответить

    Добавить комментарий