Перейти на главную страничку сайта (список статей, файлы для скачивания)
Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.
Оригинал статьи в AutoHotkey.chm: "#Include / #IncludeAgain", в содержании - "#Directives" - "#Include/#IncludeAgain", 1.0.47.06.
Ник переводчика: YMP.
Настоящее имя переводчика: Юрий Попов.
Обозначает место, куда перед выполнением скрипта будет вставлено содержимое указанного файла.
#Include FileOrDirName #IncludeAgain FileOrDirName
FileOrDirName | Имя файла или каталога. Файл: если полный путь не указан, предполагается, что файл находится в стартовом/рабочем каталоге (исключение: ahk2exe предполагает, что файл находится в одном каталоге со скриптом). Путь и имя файла не должны содержать ссылок на переменные (кроме %A_ScriptDir%, %A_AppData% и %A_AppDataCommon%), двойных кавычек или шаблонов. Escape-последовательности, кроме случая точки с запятой (`;), не должны использоваться, но это и не нужно, поскольку такие символы как знак процента интерпретируются как литеральные. Замечание: SetWorkingDir не оказывает влияния на #Include, поскольку #Include обрабатывается до того как скрипт начнёт выполняться. Каталог: укажите вместо файла, чтобы изменить рабочий каталог, который будет использоваться всеми последующими применениями #Include и FileInstall. Имя каталога не должно содержать переменных кроме %A_ScriptDir%, %A_AppData% и %A_AppDataCommon%. Замечание: изменение рабочего каталога таким способом не влияет на исходный рабочий каталог скрипта (A_WorkingDir). Для его изменения используйте SetWorkingDir вверху скрипта. |
Скрипт ведёт себя так, как если бы всё содержимое вставляемого файла физически находилось на месте директивы #Include (как будто вы скопировали и вставили его из этого файла). Вследствие этого, таким способом обычно нельзя объединить два изолированных скрипта в один нормально функционирующий (как можно этого добиться, смотрите здесь: www.autohotkey.com/forum/topic18545.html).
#Include гарантирует, что указанный файл вставляется только один раз, даже если в скрипте встретится несколько директив с этим файлом. Напротив, #IncludeAgain допускает многократные вставки одного и того же файла; в остальном она не отличается от #Include.
Перед именем файла можно поставить *i и один пробел, что позволит программе игнорировать неудачи при загрузке вставляемого файла. Например:
#Include *i SpecialOptions.ahk.
Эта опция должна использоваться, только если содержимое файла не имеет существенного значения для основной функциональности скрипта.
Строки скрипта, показываемые в его главном окне по команде ListLines или при выборе пункта меню View->Lines, всегда нумеруются в порядке их физического расположения в их собственных файлах. Другими словами включение нового файла изменит нумерацию в главном файле только на одну строку, а именно ту, где стоит сама директива #Include (исключение составляют компилированные скрипты, поскольку у них вставляемые файлы объединяются в один большой скрипт перед компиляцией).
#Include часто используется для загрузки функций, определённых во внешнем файле. В отличие от меток подпрограмм, функции могут вставляться в самое начало скрипта, никак не влияя на работу его секции автовыполнения.
Как и другие директивы, #Include не может выполняться условно. Другими словами, этот пример работать не будет:
if x = 1 #Include SomeFile.ahk ; Эта строка будет выполнена независимо от значения х. y = 2 ; А эта строка принадлежит If выше, поскольку директивы ; не могут принадлежать If.
Файлы могут вставляться автоматически (т.е. без использования #Include), если имеет место вызов библиотечной функции по имени, как это описано в статье "Функции".
#Include C:\My Documents\Scripts\Utility Subroutines.ahk #Include %A_ScriptDir% ; Изменяет рабочий каталог для последующих ; применений #Include и FileInstall. #Include C:\My Scripts ; То же, что выше, но каталог указан явно.
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.