Руководство разработчика

Модуль FILES

Модуль FILES представляет некоторые возможности по работе с файловой системой. Для чтения и записи текстовых файлов модуль содержит определение объектного типа ФАЙЛ и связанных с ним констант. Набор функций служит для работы с файлами и папками. Также модуль содержит определение цикла ФАЙЛЫ, позволяющего осуществить перебор файлов по маске.

Функции

Функции для работы с файлами

Функции для работы с файлами представляют возможности для обнаружения, копирования, переименования и удаления файлов. Две функции предназначены для упрощенного создания объектов ФАЙЛ. Все имена файлов задаются либо абсолютным именем, либо относительно текущей папки.

ФАЙЛ_СУЩ проверяет наличие файла с заданным именем;
ФАЙЛ_УДАЛИТЬ удаляет файл с заданным именем;
ФАЙЛ_КОПИРОВАТЬ копирует один файл в другой;
ФАЙЛ_ПЕРЕИМЕНОВАТЬ переименовывает файл;
ФАЙЛ_ВРЕМЯ_ИЗМ позволяет получить дату и время последнего изменения файла;
ФАЙЛ_РАЗМЕР возвращает размер файла в байтах;
ФАЙЛ_АТРИБУТЫ возвращает различные атрибуты, связанные с файлом;
ФАЙЛ_СРАВНИТЬ побайтно сравнивает содержимое двух файлов;
ФАЙЛ_ОТКРЫТЬ открывает текстовый файл на чтение;
ФАЙЛ_СОЗДАТЬ создает файл с заданным именем (либо перезаписывает существующий).

Функции для работы с папками

Функции для работы с папками представляют возможности для создания, удаления, обнаружения и копирования папок. Существуют также функции для получения папки установки платформы, рабочей папки платформы, общей папки платформы и текущей папки.

Папка установки платформы – это папка, в которой расположен exe-файл платформы. Относительно этой папки указываются пути к стандартным файлам справки платформы, файлам шаблонов проектов, подключаемым модулям.

Рабочая папка – это папка, в которой расположены вспомогательные файлы, необходимые для работы платформы. Относительно рабочей папки указываются пути к файлам проектов и исполняемым файлам алгоритмов, файлам контекстов пользователей, файлам, хранящим структуру меню и панелей инструментов и т.д. Файл инициализации клиентской части платформы также располагается в рабочей папке. Таким образом, можно создать несколько рабочих папок и запускать одно и то же клиентское или серверное приложение с разными настройками (аналогично ярлыкам в Windows).

Конфигурация папок несколько отличается в режиме установки программы на терминальном сервере. Там различают общую и рабочую папки. В обычном режиме установки программы разделения на рабочую и общую папки нет, то есть все файлы прикладных компонентов, файлы конфигурации пользователей и т.д. хранятся в рабочей папке.

Общая папка предназначена для хранения файлов прикладной части платформы, не затрагиваемые изменениями в процессе пользовательской работы в программе, файлов проектов и исполняемых файлов алгоритмов, файлов контекстов пользователей, файлов, хранящих структуру меню и панелей инструментов, а рабочая папка хранит файлы инициализации и файлы пользовательских конфигураций программы.

Текущая папка – это папка, относительно которой выполняется текущий процесс. Процесс может изменять текущую папку. Так как текущая папка является глобальным ресурсом процесса, то полагаться на нее особо не стоит. По возможности используйте абсолютные пути к файлам и папкам.

ДИР_СУЩ проверяет наличие папки с заданным именем;
ДИР_СОЗДАТЬ создает одну папку по указанному пути;
СОЗДАТЬ_ПУТЬ создает путь;
ДИР_УДАЛИТЬ удаляет пустую папку;
ДИР_УДАЛИТЬ_ВСЕ удаляет папку со всем ее содержимым;
ДИР_КОПИРОВАТЬ копирует папку вместе со всем ее содержимым;
ПРОГ_ДИР возвращает полный путь к папке, в которую установлена платформа;
РАБ_ДИР возвращает полный путь к рабочей папке платформы;
ОБЩ_ДИР возвращает полный путь к общей папке платформы;
ТЕК_ДИР возвращает полный путь к текущей папке процесса;
УСТ_ТЕК_ДИР устанавливает текущую папку процесса.

Функции для работы с путями и именами файлов

Функции этой группы не обращаются к файлам и папкам на диске, а производят манипуляции со строковыми путями и именами файлов.

ПУТЬ_ОТН позволяет получить относительный путь для заданной базовой папки и полного пути;
ПУТЬ_АБС позволяет получить абсолютный путь для заданной базовой папки и относительного пути;
ПУТЬ_СОЕДИНИТЬ соединяет в одну строку части пути файла или папки;
ПУТЬ_ВКЛЮЧАЕТ проверяет принадлежность пути файла или подпапки заданной папке;
ПУТЬ_СРАВНЕНИЕ проверяет равенство двух путей;
ПУТЬ_ДИР выделяет путь папки из пути файла;
ПУТЬ_ФАЙЛ выделяет имя файла с расширением из пути;
ПУТЬ_ИМЯ выделяет имя файла без расширения из пути;
ПУТЬ_РАСШ выделяет расширение файла из пути;
ПУТЬ_ЗАМЕНА_РАСШ принудительно заменяет в пути одно расширение файла на другое;
ПУТЬ_РЕАЛЬНЫЙ заменяет разделители пути и исправляет регистр символов.

Функции для работы с base64

Функции предназначены для представления двоичных данных в текстовом виде с использованием цифр 64-ричной системы.

Б64_КОДИРОВАТЬ преобразует двоичный файл в строковое представление base64;
Б64_ДЕКОДИРОВАТЬ преобразует строковое представление base64 в двоичный файл;
Б64_КОДИРОВАТЬ_В_ФАЙЛ преобразует двоичный файл в текстовый файл, содержащий данные в base64;
Б64_ДЕКОДИРОВАТЬ_ИЗ_ФАЙЛА преобразует текстовый файл, содержащий данные в base64, в двоичный файл;
Б64_КОДИРОВАТЬ_СТР преобразует двоичное представление текста в заданной кодировке в строковое представление base64;
Б64_ДЕКОДИРОВАТЬ_СТР преобразует строковое представление base64 в текст в соответствии с заданной кодировкой.

Средства расширения платформы

Модуль FILES предоставляет средства расширения возможностей платформы за счет выполнения сторонних программ и вызова функций из динамических библиотек.

СОЗДАТЬ_ПРОЦЕСС позволяет из платформы запустить внешний исполняемый файл операционной системы Windows;
КОМАНДА_ОБОЛОЧКИ позволяет выполнять команды Windows Shell для файлов, папок и других объектов.
ТЕК_КОМ_СТРОКА позволяет получить командную строку текущего процесса.

Также существует объектный тип ДИНАМИЧЕСКАЯ_БИБЛИОТЕКА, позволяющий осуществить вызов функций из динамических библиотек (DLL).

Для работы со специально разработанными промежуточными DLL существует объектный тип БИБЛИОТЕКА_ПОСРЕДНИК. Промежуточные DLL создаются, когда сторонний компонент имеет сложный и нестандартный программный интерфейс, для работы с которым недостаточно возможностей типа ДИНАМИЧЕСКАЯ_БИБЛИОТЕКА или модуля MODCOM.

Объектные типы

Контейнерные типы

Циклы