PDA

Показать полную графическую версию : *Теория* | Использование BlockRead и BlockWrite


Surround
29-03-2005, 05:39
подскажите, плз, как правильно использовать данную функцию для считывания/записи в файл на дельфях...

Savant
29-03-2005, 09:02
Что-то тут комментарии местами не по-русски пишутся, загоню-ка я всё это в архив

В архивчике базовые приёмы работы с Block(Read/Write), если надо что-то уточнить для конкретного случая, спрашивай.

Surround
30-03-2005, 08:08
а что значит {$DEFINE _debugver} {$IFDEF _debugver}?

Savant
30-03-2005, 10:58
:) ну, может, я действительно немного перемудрил...

А что, серьёзно видишь в первый раз эти директивы компилятора? Ну да ладно, это неважно.
1. {$DEFINE symbName} - эта директива определяет в текущем модуле условный идентификатор (defines conditional symbol) с именем symbName. В нашем случае определяется флаг отладочной версии программы (именно программы, но не кода).
2. {$IFDEF symbName}. Если идентификатор symbName был создан где-то выше по коду (IFDEF = If Defined), то эта директива включает в компиляцию весь код стоящий между {$IFDEF ...} ... {$ENDIF}. Иначе данный кусок кода как бы "выпадает" (а {$IFNDEF} действует с точностью до наоборот). В нашем случае если не определен идентификатор (symbol) _debugver в компиляцию не включается вывод на экран некоторых результатов работы программы.
3. Существует еще множество директив компилятора. Всех их можно легко найти в справке, т.к. они начинаются на символ доллара ($)

Кстати, Surround, тебе Block(Rd/Wrt) нужны для работы с типизированным или нетипизированным файлом?

Surround
31-03-2005, 08:06
Savant
BlockWrite/Read нужно мне для работы с нетипизированными файлами. Там для считывания из них по байту, шифровки этого байта и т.д.
Понимаешь, делфик самостоятельно без книжек изучал, а про дерективы в хелпах непонятно написано, как бы зачем и как они нужны.

Savant
31-03-2005, 08:14
SurroundBlockWrite/Read нужно мне для работы с нетипизированными файлами. Там для считывания из них по байту, шифровки этого байта и т.д.Тогда проще будет через банальные Read/Write (можно даже TextFile использовать). Block(rd/Wrt) используют, когда требуется считать не один байт из файл, а несколько бОльшее кол-во.
Понимаешь, делфик самостоятельно без книжек изучал...Сам такой =)
... а про дерективы в хелпах непонятно написано, как бы зачем и как они нужныНу например одно из использований {$IFDEF} как директивы условной компиляции - это создание Demo и Full версий программ. В самом начале можно задать {$DEFINE _fullVER} и по ходу написания кода важные части (те, что не будут в демо-версии) "прятать" в {$IFDEF _fullVER}...{$ELSE}...{$ENDIF}.




© OSzone.net 2001-2012