8. Ввод-вывод

8.1. Работа с файлами

8.1.1. Путь

GetTempFileName(prefix, suffix: String): String

Метод возвращает уникальное имя файла во временном каталоге Windows.

Parameters:
  • prefix (String) -- Префикс имени файла
  • suffix (String) -- Окончание имени файла с расширением
Return type:

String

GetTempDirectory(): String

Метод возвращает путь к временному каталогу Windows.

Return type:String
ExtractFileName(sFileName: String): String

Выделяет имя файла из полного имени файла

Parameters:sFileName (String) -- Описание отсутствует
Return type:String
ExtractFileExt(sFileName: Variant): String

Выделяет расширение файла (с точкой в начале) из имени файла.

Parameters:sFileName (Variant) -- Описание отсутствует
Return type:String
ExtractFileDir(sFileName: String): String

Выделяет каталог из полного имени файла

Parameters:sFileName (String) -- Полное имя файла.
Return type:String

8.1.2. Модификация каталогов

MkDir(S: String)

Создает новую субдиректорию.

Parameters:S (String) -- Описание отсутствует
RemoveDir(sPath: String): Variant

Удаляет пустой каталог. Возвращает True, если результат операции успешен.

Parameters:sPath (String) -- Имя каталога (полное).
Return type:Variant
RemoveDirEx(sPath: String; bFlag: Boolean): Boolean

Удаляет каталог. Возвращает True, если результат операции успешен.

Parameters:
  • sPath (String) -- Имя каталога (полное).
  • bFlag (Boolean) -- Режим удаления каталога, если True, каталог будет удален вместе с подкаталогами и файлами, если False, то действие аналогично RemoveDir.
Return type:

Boolean

DeleteFile(AFileName: String): Boolean

Удаляет файл с именем AFileName. Возвращает True, если результат операции успешен

Parameters:AFileName (String) -- Имя файла.
Return type:Boolean
RenameFile(OldName, NewName: String): Variant

Переименовывает файл. Возвращает True, если результат операции успешен.

Parameters:
  • OldName (String) -- Полное старое имя файла.
  • NewName (String) -- Полное новое имя файла.
Return type:

Variant

8.1.3. Информация и каталогах

DirectoryExists(APath: String): Variant

Проверяет существование каталога с именем APath.

Parameters:APath (String) -- Каталог.
Return type:Variant
FileExists(AFileName: String): Boolean

Проверяет существование файла с именем AFileName.

Parameters:AFileName (String) -- Полное имя файла (с именем диска и каталога).
Return type:Boolean
GetFileDateTime(AFileName: String): TDateTime

Функция возвращает дату создания файла.

Parameters:AFileName (String) -- Полное имя файла.
Return type:TDateTime
Пример использования
<Pascal>
  FileName := 'TEST.doc';
  If FileExists(FileName) then
    ShowMessage(DateTimeToStr(GetFileDateTime(FileName)));
</Pascal>
FileSize(sFileName: Variant): Integer

Возвращает размер файла в байтах.

Parameters:sFileName (Variant) -- Полное имя файла (с именем диска и каталога).
Return type:Integer
GetDirFileList(APath: String): Array

Функция возращает массив файлов (полные имена) входящих в каталог APath.

Parameters:APath (String) -- Имя каталога (полное).
Return type:Array

8.1.4. Загрузка/Сохранение

SaveToFile(AFileName, AFileText: String)

Сохраняет в файл текст. Используется, в частности, при выгрузке скрипта “понятия” в файл.

Parameters:
  • AFileName (String) -- Имя файла. Если имя пустое, то создается диалоговое окно выбора файла.
  • AFileText (String) -- Текст, который будет занесен в файл.
LoadFromFile(AFileName: String): String

Загружает текст из файла. Функция возвращает содержимое файла.

Parameters:AFileName (String) -- Описание отсутствует
Return type:String
LoadTextFromFile(FileName: String; Encoding: Integer): String

Функция загружает и возвращает текст из файла с указанной кодировкой преобразуя в текст с текущей скриптовой кодировкой (ANSI).

Parameters:
Return type:

String

Пример использования
<PASCAL>
  str := LoadTextFromFileProc('D:\utf8file_in.txt', 65001); // Загружаем utf-8(unicode) файл и преобразуем в AnsiString
  ShowMessage(str); // Выводим Ansi строку в сообщение
  SaveTextToFileProc('D:\utf8file_out.txt', 1200, str, true); // Сохраняем строку в кодировке Utf-16(unicode)
</PASCAL>
LoadFromFileToBlob(FileName: String): Variant

Метод загружает данные из файла в бинарный массив (blob).

Parameters:FileName (String) -- Имя файла.
Return type:Variant
Пример использования
<sql>
  <SaveBlob>
   begin
      BlobOpen_testAPI.SetblobData(:id, :FileInBlob);
   end;
  </SaveBlob>
</sql>

<PASCAL>
   blob := LoadFromFileToBlob('D:\1.mp3'); // загрузка из файла
   Selection.AddVar('FileInBlob',blob, ftOraBlob);
   SaveBlobtoFile('D:\2.mp3', GetVar('FileInBlob')); // сохрание в другой файл
   ExecSQL('SaveBlob'); // Сохрание на сервере
</PASCAL>
SaveBlobToFile(AFileName: String; ABlobData: Variant)

Сохранение бинарных данных в файл.

Parameters:
  • AFileName (String) -- Имя файла
  • ABlobData (Variant) -- Бинарные данные.
Пример использования
<sql>
  <SaveBlob>
   begin
      BlobOpen_testAPI.SetblobData(:id, :FileInBlob);
   end;
  </SaveBlob>
</sql>

<PASCAL>
   blob := LoadFromFileToBlob('D:\1.mp3'); // загрузка из файла
   Selection.AddVar('FileInBlob',blob, ftOraBlob);
   SaveBlobtoFile('D:\2.mp3', GetVar('FileInBlob')); // сохрание в другой файл
   ExecSQL('SaveBlob'); // Сохрание на сервере
</PASCAL>
SaveTextToFile(AFileName, ATextData: String; AEncoding: Integer; APreamble: Boolean)

Метод сохраняет символьные данные ATextData в файле в заданной кодировке AEncoding. Параметр APreamble применяется для кодировки Unicode и определяет вставлять префикс с типом Unicode кодировки или нет. Большинство приложений (Блокнот, NotePad++ и др.) считывают префикс и отображат текст в нужной кодировке. Рекомендуется всегда задавать префикс, передавая в параметре APreamble значение True.

Parameters:
  • AFileName (String) -- Имя файла.
  • ATextData (String) -- Массив символьных данных.
  • AEncoding (Integer) -- Кодировка файла.
  • APreamble (Boolean) -- Флаг определяет задавать префикс или нет.
Пример использования
<PASCAL>
  str := LoadTextFromFileProc('D:\utf8file_in.txt', 65001); // Загружаем utf-8 (unicode) файл и преобразуем в AnsiString
  ShowMessage(str); // Выводим Ansi строку в сообщение
  SaveTextToFileProc('D:\utf8file_out.txt', 1200, str, true); // Сохраняем строку в кодировке Utf-16(unicode)
</PASCAL>
FilePos(AParam_1: Variant): Integer

Не используется.

Parameters:AParam_1 (Variant) -- Описание отсутствует
Return type:Integer
Reset(File: Variant)

Открывает существующий файл на чтение.

Parameters:File (Variant) -- Описание отсутствует
AssignFile(F: Variant; FileName: String)

Метод связывает файловую переменную F с файлом на диске.

Parameters:
  • F (Variant) -- Файловая переменная.
  • FileName (String) -- Полное имя файла.
EOF(F: Variant): Variant

Функция тестирует находится ли указатель текущей позиции считывания/записи в конце файла. Если указатель находится в конце, то функция возвращает True.

Parameters:F (Variant) -- Файловая переменная. Файловая переменная связывается методом AssignFile.
Return type:Variant
Rewrite(F: Variant)

Метод отрывает файл F на перезапись. Файл будет создан, если файла с таким именем еще не существует.

Parameters:F (Variant) -- Файловая переменная.
CloseFile(F: Variant)

Метод закрывает файл, открытый методоми Append, Rewrite или Reset.

Parameters:F (Variant) -- Файловая переменная.

8.1.5. Другое

Chdir(sPatch: String)

Процедура менят текущий каталог приложения.

Parameters:sPatch (String) -- Новый каталог.
ReadLn(F: Variant): Variant

Метод переводит указатель на начало следующую строки в файле.

Parameters:F (Variant) -- Файловая переменная.
Return type:Variant

8.2. Последовательный порт

8.2.1. TbtkScriptComEvents

class TbtkScriptComEvents

Адаптер позволяющий использовать операции выборки в качестве обработчиков событий COM-объектов

ComObject: IDispatch

COM-объект к которому подключен обработчик (для которого выполнен метод Connect, он же передаётся как Sender в операцию-обработчик).

Аттрибут только для чтения

Return type:IDispatch
Connected: Boolean

Свойство сообщает о состоянии обработчика, True - подключен (успешно выполнен метод Connect).

Аттрибут только для чтения

Return type:Boolean
Disconnect()

Отключить обработчик от COM-объекта. Убрать ссылку на себя из COM-объекта и занулить ссылку на COM-объект.

Connect(ClientCOM: IDispatch; Operataion: TbtkScriptOperationObject)

Установить обработчик событий COM-объекту (подключить к COM-объекту). COM-объекту передаётся ссылка на IDispatch, реализуемый данным экземпляром TbtkScriptComEvents, также ссылка остаётся на COM-объект у экземпляра TbtkScriptComEvents. Ссылка на COM-объект (после успешного подключения) доступна через свойство TbtkScriptComEvents.ComObject. Проверить успех подключения можно через свойство TbtkScriptComEvents.Connected.

Впоследствии, вызовы событий данного интерфейса COM-объектом будут перенаправляться в операцию выборки переданную как параметр Operation.

Parameters:
  • ClientCOM (IDispatch) -- COM-объект которому будет установлен данный обработчик событий
  • Operataion (TbtkScriptOperationObject) -- В последствии вызовы событий данного интерфейса COM-объектом будут перенаправляться в операцию
Create(EventCLSID: String): TbtkScriptComEvents

Создаёт новый экземпляр адаптера обработки событий: события генерируемые COM-объектом вызывают операцию выборки. Экземпляр представляющий заданный в параметре EventsIID класс COM-обработчика.

Parameters:EventCLSID (String) -- GUID dispinterface-а обработчика событий COM-объекта. Передаётся строкой вида '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}'
Return type:TbtkScriptComEvents

8.2.2. TbtkScriptSerialPortTimeouts

class TbtkScriptSerialPortTimeouts

Класс предоставляет доступ к структуре COMMTIMEOUTS. Более подробнувю информацию лучше смотреть в MSDN

Note

В классе реализованы не все поля из структуры, а только те, которые описаны в BDN.

WriteTotalTimeoutMultiplier: Integer

Описание отсутствует

Return type:Integer
WriteTotalTimeoutConstant: Integer

Описание отсутствует

Return type:Integer
ReadTotalTimeoutMultiplier: Integer

Описание отсутствует

Return type:Integer
ReadTotalTimeoutConstant: Integer

Описание отсутствует

Return type:Integer
ReadIntervalTimeout: Integer

Описание отсутствует

Return type:Integer

8.2.3. TbtkScriptSerialPortDcbObject

class TbtkScriptSerialPortDcbObject

Класс предоставляет доступ системной структуре DCB, определяющей управляющие настройки последовательного порта. Подробную информацию лучше смотреть в MSDN

Note

В клаcсе реализован доступ не ко всем полям, а только к описаным в MSDN. Константы поддерживаются.

StopBits: Integer

Доступны константы ONESTOPBIT, ONE5STOPBITS, TWOSTOPBITS.

Return type:Integer
Parity: Integer

Доступны константы NOPARITY, ODDPARITY, EVENPARITY, MARKPARITY, SPACEPARITY.

Return type:Integer
ByteSize: Integer

Описание отсутствует

Return type:Integer
BaudRate: Integer

Доступны константы CBR_110, CBR_300, CBR_600, CBR_1200, CBR_2400, CBR_4800, CBR_9600, CBR_14400, CBR_19200, CBR_38400, CBR_56000, CBR_57600, CBR_115200, CBR_128000, CBR_256000.

Return type:Integer

8.2.4. TbtkScriptSerialPortObject

class TbtkScriptSerialPortObject

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

Registered: Boolean

Зарегистрирован обработчик на последовательный порт или нет. True - зарегистрирован, False - не зарегистрирован.

Return type:Boolean
Opened: Boolean

Возвращает состояние актиности порта. Если True - порт открыт, False - закрыт.

Return type:Boolean
Data: String

Данные считанные из последовательного порта, после их поступления. Поле позволяет получить данные в обработкичке на поступление данных в последовательный порт.

Return type:String
Port: String

Имя последовательного порта. Свойство только для чтения.

Return type:String
SetCOMMTimeouts()

Запись параметровов таймаутов в порт. Параметром является структура COMMTIMEOUTS.

GetCOMMTimeouts(): TbtkScriptSerialPortTimeouts

Получение параметров времение ожидания (timeout) последовательного порта. После изменения параметров, можно записать в порт используя SetCOMMTimeouts.

Return type:TbtkScriptSerialPortTimeouts
SetDCBProperties(ADCB: TbtkScriptSerialPortDcbObject)

Запись управляющей структуры DCB в порт.

Parameters:ADCB (TbtkScriptSerialPortDcbObject) -- Описание отсутствует
GetDCBProperties(): TbtkScriptSerialPortDcbObject

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

Return type:TbtkScriptSerialPortDcbObject
Close()

Закрытие COM порта. На закрытие выполняет освобождение занятых системных ресурсов, важно после работы с COM портом закрыть его.

Open()

Открытие COM порта. После открытия порта, можно производить чтение и запись.

DeregisterHandler()

Дерегистрация обработчика на получение данных COM портом.

RegisterHandler(Operation: TbtkScriptOperationObject)

Регистрация обработчика на получение данных COM портом. Зарегистрированная операция будет вызвана, когда устройство, подключенное к COM порту, выполнит запись в порт. У метода-обработчика должен быть входной параметр строкового типа, в него передается имя порта.

Parameters:Operation (TbtkScriptOperationObject) -- Описание отсутствует