и RESTORE SCREEN, которые при
В отличие от
Clipper-команд SAVE SCREEN и RESTORE SCREEN, которые при подключенном
CT II-драйвере ориентируются на активное окно, функция SCREENFILE()
записывает образ всего физического экрана. Число записываемых ею
байтов зависит только от текущего видеорежима. Для VGA в режиме 50
строк, например, это 8000 символов, а не 4000. Размер экрана в текущий
момент времени возвращается функцией SCREENSIZE().
Параметр <nOffset> используется только при значении .T. параметра
<lAppend>. В этом случае он задает позицию в файле, начиная с которой
должны быть записаны новые данные. Если задаваемая параметром
<nOffset> позиция находится перед концом файла, то новая информация
вместо старой будет записана с этого смещения. Если позиция находится
за концом файла, то данные будут добавлены в конец файла. Если
параметр <nOffset> опущен, а <lAppend> имеет значение .T., что
означает добавление, то оно производится в конец файла. Это позволяет
хранить в одном файле несколько экранных изображений.
В тех случаях, когда новое изображение записывается взамен уже
существующего не в начало файла и вся последующая информация более не
нужна, вызов функции следует производить со значением .T. параметра
<lTrim>. В этом случае функция произведет усечение остатка файла.
Примечания
. Значение атрибута файла, созданного функцией SCREENFILE(), можно
изменить с помощью функции SETFCREATE().
. Если внутренний переключатель, управляемый CT II-функцией
CSETSAFETY() включен, то выходной файл не будет перезаписываться, даже
при значении .F. параметра <lAppend>.
. Использование универсальных символов сопоставления ("?" и "*") для
задания группы файлов не допускается.
Примеры
. Перезапись существующего файла:
SCREENFILE("screen.tst") // Результат: 4000