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

    +133

    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
    private string LineTabsCRLFToSpaces(string line)
            {
                string ret_line = "";
                if (line != null)
                {
                    //    throw new ArgumentNullException("line");
                    if (line.Length == 0) return string.Empty;  // Пустая входная строка
                    for (int i = 0; i < line.Length; i++)
                    {
                        char ch = line[i];
                        if (ch == '\t' || ch == '\r' || ch == '\n')
                            ret_line = ret_line + " ";
                        else
                            ret_line = ret_line + ch;
                    }
                }
                return ret_line;
            }

    - line.Replce()?
    - Не, не слышал!

    Запостил: nolka4, 12 Августа 2013

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

    • > ret_line = ret_line + " ";
      А в C# такой код также вызывает загаживание кучи, как и в Java?
      Ответить
      • Всяко. Суть то такая же - создаем новую строку, в которой на один символ больше.

        Интересно, а в ret_line += " " шарп догадается, что старая строка уже не нужна, и можно дописывать символы прямо в нее? Вроде как у шарпа строки мутабельные, в отличие от явы...
        Ответить
        • В C# строки immutable, если верить Гуглу и MSDN
          http://msdn.microsoft.com/en-us/library/vstudio/362314fe.aspx
          Ответить
          • Ну тогда разницы совсем нет... что в яве, что в шарпе куча засрется.
            Ответить
            • Блядь, мудаки, не куча засрется, а O(n^2) в цикле.
              Ответить
              • Что не C#-тред, то очередное продолжательство дел польского маляра...
                Ответить
                • Щито?
                  Ответить
                  • http://russian.joelonsoftware.com/Articles/BacktoBasics.html
                    Ответить
                    • Обьяснение на пальцах для тех, кто не в состоянии посчитать сумму арифметической прогрессии? Ололо анскиллябры.
                      Ответить
                    • >На прошлой неделе я написал, что команда SQL SELECT author FROM books не может быть быстро выполнена, если исходные данные находятся в формате XML.
                      Microsoft головного мозга - команды linq-то одинаковые (или что это было), только вот в SQL с индеком select выполняется за < O(n) из-за индеса, а в XML/коллекциях - за O(n).
                      Ответить
                      • > < O(n)
                        Что здесь n? Если кол-во книг, то как выполнить SELECT author FROM books за время, меньшее O(n)?
                        Ответить
                        • Я имел в виду Select author from books where a=b
                          Ответить
                        • собрат элементы не обращаясь к ним) Это магия вуду)
                          Ответить
                        • Можно собирать используя, например, баесиaснскую вероятность, тогда будеть меньше. Например, если элемент Н удовлетворяет условую, то Н+1 с вероятностью 50% тоже, если он действительно удовлетворяет, то элемент следующий за ним - вероятность 2:1, что удовлетворяет. Ну и можно задать предел, после которого не проверять объекты, т.как вероятность того, что они не нужны будет достаточно высокой.
                          Ответить
                          • Где вы условие там увидели? :) Там тупо выбирают авторов у всех записей.

                            > вероятность
                            Недетерминированные запросы это, конечно, интересная область. Для поисковиков типа гугла, возможно, даже полезная. Но далеко не всегда юзабельна ;)
                            Ответить
                            • Ну, анонимб говорит что-то про where a = b.

                              Кстати, по поводу полезности, полезна даже гораздо чаще, чем кажется. Например, сайт знакомств. Там обычно люди составляют профайлы с пожеланиями и улучшениями (типа критерии поиска). Когда критериев набирается пару десятков (даже!) при даже относительно небольшой базе пользователей, сопоставить со всем по всем критериям - задача совсем не тривиальная.
                              Ответить
                          • >если элемент Н удовлетворяет условую, то Н+1 с вероятностью 50%

                            это не тервер, это хуйня какая то)
                            Ответить
                            • :)
                              Не, ну а подумайте. Вообще, конечно, имелось в виду "первый элемент". Т.е. вот наш объект обозрел событие. С какой вероятностю он должен спрогнозировать повторение этого события, если известно, что событие может либо повториться, либо не повториться? -- 50% (1:1). Если объект обозрел два повторяющихся события, то уверенность, соответственно выросла, 2:1. Нэ?
                              Ответить
                              • С чего это? Вот идет человек по дороге, а на втречу ему мужчина. через несколько минут - опять мужчина. какова вероятность того, что следующий встречный тоже мужчина? все те же 50%
                                Ответить
                                • Была такая книжка, не знаю как по-русски называлась, но наверное что-то типа "Взойдет ли завтра солнце?" - это баесианская теория в примерах / типа того.
                                  Так в примере про мужчину: вам нужно определять условия, так просто однозначно ответить нельзя. С позиций баесианской теории, да, вероятность встретить мужчину увеличилась бы, потому что сама ее суть принимает в рассчет предыдущие исходы. Но если вы не принимаетe в рассчет предыдущие исходы (что так же легитимно для каких-то задач), то вероятность осталась бы такой же.
                                  Ответить
                                  • >Была такая книжка, не знаю как по-русски называлась, но наверное что-то типа "Взойдет ли завтра солнце?"
                                    > С позиций баесианской теории, да, вероятность встретить мужчину увеличилась бы,

                                    А я вот такую книжку в детстве читал:
                                    http://ru.wikisource.org/wiki/Живая_математика_(Перельман)/Глава_7#67._.D0.9F.D0.B0.D1.80.D0.B8

                                    Еще у Такеши Китано в фильме Брат, есть доставляющий момент на ту же тему.
                                    Мораль в том что реальная жизнь обыкновенно оказывается гораздо сложнее и непредсказуемей чем убогая математическая модель, которую навязывает wvxvw.
                                    Ответить
                                    • Кстати, как раз Баес в этом случае бы очень даже хорошо предугадал, уже со второго солдата предсказывая более вероятное появление следующего мужчины. Так что максимум бы один раз ошибся (1 из 1000 true negative).
                                      Ответить
                                    • > http://ru.wikisource.org/wiki/Живая_математика_(Перельман)/Глава_7#67._.D0.9F.D0.B0.D1.80.D0.B8
                                      Что-то убого они книжку портанули. Картинки потеряли по дороге.
                                      Ответить
                                • http://en.wikipedia.org/wiki/Rule_of_succession
                                  PS
                                  Ответить
                                • вспомнился анекдот про блондинку и динозавра
                                  Ответить
                                • Помню читал рассказ где математик в столовой рассказывал присутствующим про теорию вероятности.
                                  Типа по улице пройдет 1 мужчина = 0.5
                                  2 мужчины=0.25 итд.
                                  Ну и поспорил с присутствующими поставив солидную сумму против рубля, что практически невозможно событие когда пройдут 1000 мужчин.

                                  А чуть попозже мимо промаршировал полк солдат, лол.
                                  Ответить
                                  • Эх, математика.... вечно она не учитывает социальные явления...
                                    Ответить
        • нет, не мутаберные. все как в джаве
          Ответить
    • > - line.Replce()?
      > - Не, не слышал!

      и это тоже было бы говном. табы занимают от 1 до 8 пробелов, в зависимости от позиции в тексте.

      пример (c++, не тестировал):
      const std::string &input;
      std::string output;
      const size_t tab_size = 8;
      
      size_t pos = 0;
      
      for ( pos = 0; pos < input.size(); pos++ ) {
      	if (input[pos] == '\t') {
      		output.push_back( ' ' );
      		while (output.size() % tab_size) output.push_back( ' ' );
      	}
      	else {
      		output.push_back( input[pos] );
      	}
      }


      PS про CRLF забыл...
      Ответить
      • Судя по замене црлф на пробелы, здесь хотят добиться не красивого вывода моноширным шрифтом, как написали вы, а тупо заменить все пробельные символы на пробелы, примерно как в хтмл. Ну разве что сжать одряд идущие пробелы в один еще стоило бы
        Ответить
    • Вангую сишкоблядь. Вот что сишка головного мозга делает.
      Ответить
    • >Replce
      Упрлс
      Ответить
    • if (line != null)
      {
      if (line.Length == 0) return string.Empty;
      легким движением руки превращается в if(!string.IsNullOrEmpty(line)) {}
      Ответить
    • 1
      Ответить

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