1. VisualBasic / Говнокод #14362

    −123

    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
    PureBasic
    ================================================================================
    Define size, *mem, str$
    
    If ReadFile(1,"file.exe")
      size = Lof(1)
      If size = 0
        Debug "Файл пустой"
      Else
        *mem = AllocateMemory(size)
        If *mem
          ReadData(1, *mem, size)
          ;Делаем то, что нужно с памятью. Например, выведем первые 30 байтов файла
          For i = 0 To 29
            str$ + RSet(Hex(PeekB(*mem + i), #PB_Byte), 2, "0") + " "
          Next
          Debug "Первые 30 байтов"
          Debug str$
          FreeMemory(*mem) ;Не забываем очищать память!!!
        EndIf
      EndIf
    EndIf

    Не забываем очищать память, но кое-что, все же, забываем
    (

    Запостил: Stertor, 14 Января 2014

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

    • Уебки с http://purebasic.info/phpBB3ex/viewtopic.php?f=1&t=3643 резвятся.
      Ответить
    • EndIf
      EndIf
      EndIf

      ненавижу бейсик
      Ответить
      • fi
        fi
        fi

        Ненавижу баш.
        Ответить
        • как вариант
          Ответить
        • да и pl/sql
          да и ада (да, Тарас?)
          таких уёбищ много
          Ответить
          • }
            }
            }
            например
            Ответить



            • тут вообще питон, но сайт зохавал пробелы
              Ответить
            • if (ololo)
                if (trololo)
                  if (trulala)
                    ne_vri();
              Ответить
              • А, тебе не нравится, когда принуждают к закрывающей скобке?
                А что плохого-то, это же шаг вперёд по сравнению с.
                Ответить
                • да, меня это бесит в pl/sql
                  (там вообще крайне много говна, так что это просто одна из каках в общей куче)
                  это никакой не шаг вперед, наоборот, это атавизм
                  Ответить
                  • if (ololo) {
                      if (trololo) {
                        if (trulala)
                          ne_vri();
                          uda4i_v_otladke_lol();
                      }
                    }
                    Ответить
                    • Ну ты же прекрасно понимаешь, что случайно написать такое во вменяемой IDE не так то просто :)

                      Разве что со злым умыслом.
                      Ответить
                      • if (a)
                          if (IDE_mne_pomojet())
                            trololo();
                        else
                          ololo();

                        Когда любой блок (даже из одного оператора) надо явно оборачивать в скобки - тогда эти проблемы исчезают.
                        Ответить
                        • В чем проблема то? Ну не может там else стоять, если ты пишешь код не в сраном блокноте ;)

                          > эти проблемы исчезают.
                          Этих надуманных проблем и так нет. Если код без скобок будет непонятным - я тупо поставлю скобки. Без скобок я пишу только такие штуки:
                          for (size_t i=0; i<n; ++i)
                              for (size_t j=0; j<n; ++j)
                                  a[i, j] = f(i) + g(i); // если тут будет 2 строки - напишу все циклы со скобками
                          
                          if (Some a = f())
                              do_something(a);
                          И после таких блоков обычно ставлю пустую строку (ее все равно почти всегда там приходится ставить, чтобы разделить смысловые блоки).
                          Ответить
                        • об этом вообще ворнинг компилятор пишет
                          Ответить
                          • > компилятор пишет
                            Поправочка: вменяемый компилятор.

                            Кстати нормальный компилятор отшибает и почти все выдуманные паскалистами проблемы с = и ==.
                            Ответить
                            • Нормальный компилятор, обвешанный всеми мыслимыми предупреждениями, написанными кровью крестоблядей, наконец-то отшибает почти все проблемы, связанные с крестосинтаксисом, и позволяет писать почти как на Паскале. Если бы он ещё и пиздил по рукам за сырые массивы и указатели, то было бы ещё лучше.
                              Ответить
                              • > пиздил по рукам
                                Если у человека нет самоконтроля и чувства меры - он и на паскале напишет нечитаемую и вылетающую хуиту. Там ведь тоже, внезапно, есть работа с сырой памятью и указателями. Ну разве что адресной арифметики нет.
                                Ответить
                                • Понимаешь, разница не бинарная, "можно или нельзя", разница в том, на какой вариант толкает язык.
                                  Ведь блин, можно было же сделать так, чтобы на самом низком уровне были лишь
                                  dangerous_pure_array<T, N>
                                  и
                                  dangerous_pure_pointer<T>, и не было бы никакого способа написать их короче.
                                  Но к сожалению, в реальной жизни есть выбор межу int[5] и std::array<int,5>, это очень плохо, соблазн вызвать короткую форму очень велик.
                                  Правильная парадигма: легче всего написать самый безопасный вариант (а скорость - вопрос оптимизации и отключаемых в релизе проверок).
                                  Детектор упоротого крестушка: он считает, что правильная парадигма - это в которой легче всего написать самый быстрый вариант в ущерб безопасности.
                                  Ответить
                                  • > легче всего написать самый безопасный вариант (а скорость - вопрос оптимизации и отключаемых в релизе проверок).
                                    И называется эта парадигма... java. Правда проверки никак не убираются, если JIT не уверен в результате.

                                    > не было бы никакого способа написать их короче
                                    Ну reinterpret_cast неспроста же так назван... Хотя всемогущий сишный каст все равно оставили ;(

                                    Ну а самый главный фейл крестов в том, что их пытались сделать совместимыми с сишкой (когда-то они были банальным фронтендом для оной). Тут я с тобой согласен. И этот фейл усиливается тем, что большинство преподов, книжек и сайтов начинают учить крестам именно с их сишного наследия.
                                    Ответить
                                    • > И называется эта парадигма... java. Правда проверки никак не убираются, если JIT не уверен в результате.

                                      Поэтому называется сия парадигма не Java, а Ada. Там по умолчанию даже указатели на переменную брать нельзя.

                                      > Ну а самый главный фейл крестов в том, что их пытались сделать совместимыми с сишкой

                                      Это эволюция-с...
                                      Ответить
                                      • > Там по умолчанию даже указатели на переменную брать нельзя.
                                        А управление памятью в аде какое?
                                        Ответить
                                        • раиишное

                                          гц по желанию, но в бесплатной версии гната гц нету
                                          Ответить
                                          • i
                                            Ты попадаешь в RAII
                                            Сделай мне continue я eval-ю
                                            Ты мне не мешай
                                            Ответить
                        • И ты так говоришь, как будто эта проблема не существует в паскале.
                          Ответить
                          • Да, но я не понимаю, чем Паскаль хуже сишки в этом плане.
                            Ответить
                            • Тем что begin и end отвлекают сишника от чтения кода :)
                              Ответить
                      • А где вы видели индусов, пользующихся вменяемой IDE?
                        Под "индусами" следует понимать не национальность, а людей с нарушениями логической системы, подавшихся в кодеры.
                        Ответить
                        • сотни их. используют саму последнюю версию самой дорогой IDE (разумеется пизженой) и кодят в стиле (а мне по хуй, меня завтра уволят)
                          Ответить
                    • после многих миллионов LoC на крестах могу заверить, что проблема несколько преувеличена
                      хотя как раз об этом часто упоминают в разных гайдлайнах
                      а вот постоянные end if для однострочных действий выбешивают капитально
                      Ответить
                      • > а вот постоянные end if для однострочных действий выбешивают капитально

                        Как и постоянные } для однострочных действий.
                        Ответить
                        • > Как и постоянные } для однострочных действий.
                          Ты так говоришь, как-будто тебя кто-то заставляет писать } для однострочных действий ;)
                          Ответить
                          • Меня - никто, но это потому, что я недостаточно сознательный.
                            Ответить
                            • А зачем сознательным людям писать { } для однострочных действий? В паскале же те же самые сознательные люди не пишут для них begin и end.
                              Ответить
                              • > А зачем сознательным людям писать { } для однострочных действий?

                                Читаемость, расширяемость.
                                Ответить
                                • > Читаемость
                                  Разве
                                  if (!x)
                                      return 42;
                                  со скобками будет читаться лучше?

                                  > расширяемость
                                  О да, при добавлении еще одной строчки скобки будет дописывать так сложно, так долго, да еще и забаговать можно... Расширяемость она все-таки таится не в скобках, а в интерфейсах, которые функции/классы/модули/что-там-у-тебя представляют своим коллегам.
                                  Ответить
                                  • миксы, миксы!
                                    Ответить
                                  • Но ведь можно нечаянно забыть дописать скобки при добавлении строки...
                                    А промазать между не тех скобок - сложнее.
                                    Ответить
                                    • > Но ведь можно нечаянно забыть дописать скобки при добавлении строки...
                                      ide сдвинет эту строку на таб левее и ты заподозришь, что что-то тут не так...
                                      Ответить
        • esac мне в ребро, во всём виноват алгол
          Ответить
    • Самое печальное, что этот еёбан сейчас на последних курсах программирования, а я сосу хуи в подворотнях.
      Ответить

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