- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 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.01.2014 22:25 # −2
kegdan 15.01.2014 13:58 # 0
EndIf
EndIf
ненавижу бейсик
bormand 15.01.2014 14:04 # +4
fi
fi
Ненавижу баш.
kegdan 15.01.2014 14:18 # 0
defecate-plusplus 15.01.2014 14:21 # +1
да и ада (да, Тарас?)
таких уёбищ много
TarasB 15.01.2014 14:35 # +1
}
}
например
govnomonad 15.01.2014 14:36 # +8
тут вообще питон, но сайт зохавал пробелы
TarasB 15.01.2014 14:38 # +4
defecate-plusplus 15.01.2014 14:39 # +1
TarasB 15.01.2014 14:46 # 0
А что плохого-то, это же шаг вперёд по сравнению с.
defecate-plusplus 15.01.2014 14:50 # +1
(там вообще крайне много говна, так что это просто одна из каках в общей куче)
это никакой не шаг вперед, наоборот, это атавизм
TarasB 15.01.2014 15:01 # +2
bormand 15.01.2014 15:04 # +1
Разве что со злым умыслом.
TarasB 15.01.2014 15:08 # +1
Когда любой блок (даже из одного оператора) надо явно оборачивать в скобки - тогда эти проблемы исчезают.
bormand 15.01.2014 15:13 # +3
> эти проблемы исчезают.
Этих надуманных проблем и так нет. Если код без скобок будет непонятным - я тупо поставлю скобки. Без скобок я пишу только такие штуки: И после таких блоков обычно ставлю пустую строку (ее все равно почти всегда там приходится ставить, чтобы разделить смысловые блоки).
defecate-plusplus 15.01.2014 15:14 # +1
bormand 15.01.2014 15:16 # 0
Поправочка: вменяемый компилятор.
Кстати нормальный компилятор отшибает и почти все выдуманные паскалистами проблемы с = и ==.
TarasB 15.01.2014 15:22 # 0
bormand 15.01.2014 15:25 # +1
Если у человека нет самоконтроля и чувства меры - он и на паскале напишет нечитаемую и вылетающую хуиту. Там ведь тоже, внезапно, есть работа с сырой памятью и указателями. Ну разве что адресной арифметики нет.
TarasB 15.01.2014 15:47 # +1
Ведь блин, можно было же сделать так, чтобы на самом низком уровне были лишь
dangerous_pure_array<T, N>
и
dangerous_pure_pointer<T>, и не было бы никакого способа написать их короче.
Но к сожалению, в реальной жизни есть выбор межу int[5] и std::array<int,5>, это очень плохо, соблазн вызвать короткую форму очень велик.
Правильная парадигма: легче всего написать самый безопасный вариант (а скорость - вопрос оптимизации и отключаемых в релизе проверок).
Детектор упоротого крестушка: он считает, что правильная парадигма - это в которой легче всего написать самый быстрый вариант в ущерб безопасности.
bormand 15.01.2014 15:59 # +2
И называется эта парадигма... java. Правда проверки никак не убираются, если JIT не уверен в результате.
> не было бы никакого способа написать их короче
Ну reinterpret_cast неспроста же так назван... Хотя всемогущий сишный каст все равно оставили ;(
Ну а самый главный фейл крестов в том, что их пытались сделать совместимыми с сишкой (когда-то они были банальным фронтендом для оной). Тут я с тобой согласен. И этот фейл усиливается тем, что большинство преподов, книжек и сайтов начинают учить крестам именно с их сишного наследия.
TarasB 15.01.2014 16:05 # 0
Поэтому называется сия парадигма не Java, а Ada. Там по умолчанию даже указатели на переменную брать нельзя.
> Ну а самый главный фейл крестов в том, что их пытались сделать совместимыми с сишкой
Это эволюция-с...
bormand 15.01.2014 16:07 # +1
А управление памятью в аде какое?
TarasB 15.01.2014 16:09 # +1
гц по желанию, но в бесплатной версии гната гц нету
3Doomer 16.01.2014 07:31 # +1
Ты попадаешь в RAII
Сделай мне continue я eval-ю
Ты мне не мешай
bormand 15.01.2014 15:27 # 0
TarasB 15.01.2014 15:38 # +1
bormand 15.01.2014 15:39 # +4
Lowezar 15.01.2014 15:10 # +1
Под "индусами" следует понимать не национальность, а людей с нарушениями логической системы, подавшихся в кодеры.
Vasiliy 15.01.2014 15:46 # +1
defecate-plusplus 15.01.2014 15:13 # +1
хотя как раз об этом часто упоминают в разных гайдлайнах
а вот постоянные end if для однострочных действий выбешивают капитально
TarasB 15.01.2014 15:16 # 0
Как и постоянные } для однострочных действий.
bormand 15.01.2014 15:17 # +4
Ты так говоришь, как-будто тебя кто-то заставляет писать } для однострочных действий ;)
TarasB 15.01.2014 15:23 # 0
bormand 15.01.2014 15:27 # 0
TarasB 15.01.2014 15:38 # 0
Читаемость, расширяемость.
bormand 15.01.2014 15:48 # 0
Разве со скобками будет читаться лучше?
> расширяемость
О да, при добавлении еще одной строчки скобки будет дописывать так сложно, так долго, да еще и забаговать можно... Расширяемость она все-таки таится не в скобках, а в интерфейсах, которые функции/классы/модули/что-там-у-тебя представляют своим коллегам.
kegdan 15.01.2014 15:49 # 0
bormand 15.01.2014 15:50 # 0
?
kegdan 15.01.2014 15:56 # 0
TarasB 15.01.2014 15:51 # 0
А промазать между не тех скобок - сложнее.
bormand 15.01.2014 16:03 # 0
ide сдвинет эту строку на таб левее и ты заподозришь, что что-то тут не так...
roman-kashitsyn 15.01.2014 14:28 # +3
kegdan 15.01.2014 15:31 # 0
cmepmop 08.03.2019 13:17 # 0
guest8 08.03.2019 13:26 # −999
guest8 08.03.2019 13:27 # −999