проблемы работы с директориями |
проблемы работы с директориями |
TarasBer |
16.07.2010 9:12
Сообщение
#21
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
> Зачем SizeOf(Buf) вычисляется каждый раз, разве размер памяти под значение Buf меняется?
Buf туда передаётся разный. Неявно передавать в процедуру SizeOf(Buf) - не лучший выход, иногда надо считать не всю структуру, поэтому лучше явно указать, сколько надо считать. > На моем диске напряженка со свободным местом. Чего, прям настолько? Тогда не знаю, что посоветовать. > В то, что компилятор Дельфи (а не среда разработки) без багов как-то не вериться. Зайди на сайт Королевство Дельфи -> подводные камни. В шестой версии были баги при оптимизации, про семёрку там ни слова, и сам я ни разу не нарывался. И вообще - сначала проверь, а потом уже не верь. А то запарили подобные слухи, пущеные теми, кто вообще к предмету обсуждения даже не притрагивался. > А в Дельфи доступ к чему угодно чем-то ограничен? Добро пожаловать в Windows... -------------------- |
volvo |
16.07.2010 10:08
Сообщение
#22
|
Гость |
Цитата type идет после var, разве можно? Как угодно можно. Количество блоков Var/Type/Const в программе не лимитируется, и порядок их расположения - тоже. Главное, чтобы все, что требуется нижестоящему блоку было уже описано в вышестоящем.Цитата continue - фи, неструктурно! Зато эффективно... Я не страдаю догматизмом. Если кому-то не нравится использование goto там, где оно может помочь разгрузить программу от излишней "структурности" (например, выход из 4-х вложенных циклов. Я не буду для этого добавлять логические переменные и условия) - это его проблемы. Я в таком случае использую безусловный переход.Если я в самом начале цикла вижу, что мне его продолжать не имеет смысла - я не оборачиваю все остальное в Else, я сразу вызываю Continue, и цикл прекрасно продолжается. Цитата Почему-то запуск fullcopydir('F:\T\', 'F:\G\', true) вне модуля program. Ничего подобного. Посмотри внимательнее. Запуск FullCopyDir - это и есть вся основная программа, а все остальное - это описание самой процедуры FullCopyDir (вместе с ее подпрограммами).Цитата Зачем SizeOf(Buf) вычисляется каждый раз, разве размер памяти под значение Buf меняется? А ничего не вычисляется каждый раз. SizeOf вообще-то отрабатывает на этапе компиляции, ведь фактически размер переменной, которая назначена буфером, уже известен компилятору, если эту переменную можно использовать в качестве буфера. Так что здесь все в порядке, можешь SizeOf(i) на 1 не менять, не надо делать за компилятор его работу.Цитата volvo, вашу он прокомпилировал - 134666 b. Когда отладишь программу, зайдешь в Options->Debugger, включишь опцию "Skip all debug symbols from executable", и "Skip debug information generation", получишь EXE-шник в 2 раза меньшего размера. Я в таких случаях поступаю проще: когда мне нужен отладчик - я пользуюсь IDE FreePascal-я, когда программа отлажена, и мне нужен EXE-шник без отладочной информации - я просто открываю исходник в SciTE, и компилирую его оттуда: Scite + компилятор , тогда никакой лишней информации в EXE-файле не присутствует... Мне так проще, чем переключать режимы компиляции постоянно.Цитата В то, что компилятор Дельфи (а не среда разработки) без багов как-то не вериться. Семерка уже столько времени используется программистами... Там были, разумеется, баги, но они исправлялись, причем достаточно оперативно... |
Текстовая версия | 21.09.2024 9:15 |