8. Ввод-вывод
8.1. Работа с файлами
8.1.1. Путь
GetTempFileName(prefix, suffix: String): String
Метод возвращает уникальное имя файла во временном каталоге Windows.
Parameters: |
- prefix (String) -- Префикс имени файла
- suffix (String) -- Окончание имени файла с расширением
|
Return type: |
String |
GetTempDirectory(): String
Метод возвращает путь к временному каталогу Windows.
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, если результат операции успешен.
�>tr>
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: |
- FileName (String) -- Имя файла.
- Encoding (Integer) --
Кодировка файла.
1200
UTF-16 LE
1251
ANSI Cyrillic; Cyrillic (Windows)
65001
UTF-8
Полный список кодировок |
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
classTbtkScriptComEvents
Адаптер позволяющий использовать операции выборки в качестве обработчиков событий COM-объектов
ComObject: IDispatch
COM-объект к которому подключен обработчик (для которого выполнен метод Connect, он же передаётся как Sender в операцию-обработчик).
Аттрибут только для чтения
Connected: Boolean
Свойство сообщает о состоянии обработчика, True - подключен (успешно выполнен метод Connect).
Аттрибут только для чтения
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
classTbtkScriptSerialPortTimeouts
Класс предоставляет доступ к структуре COMMTIMEOUTS. Более подробнувю информацию лучше смотреть в MSDN
Note
В классе реализованы не все поля из структуры, а только те, которые описаны в BDN.
WriteTotalTimeoutMultiplier: Integer
Описание отсутствует
WriteTotalTimeoutConstant: Integer
Описание отсутствует
ReadTotalTimeoutMultiplier: Integer
Описание отсутствует
ReadTotalTimeoutConstant: Integer
Описание отсутствует
ReadIntervalTimeout: Integer
Описание отсутствует
8.2.3. TbtkScriptSerialPortDcbObject
classTbtkScriptSerialPortDcbObject
Класс предоставляет доступ системной структуре DCB, определяющей управляющие настройки последовательного порта. Подробную информацию лучше смотреть в MSDN
Note
В клаcсе реализован доступ не ко всем полям, а только к описаным в MSDN. Константы поддерживаются.
StopBits: Integer
Доступны константы ONESTOPBIT, ONE5STOPBITS, TWOSTOPBITS.
Parity: Integer
Доступны константы NOPARITY, ODDPARITY, EVENPARITY, MARKPARITY, SPACEPARITY.
ByteSize: 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.
8.2.4. TbtkScriptSerialPortObject
classTbtkScriptSerialPortObject
Класс инкапсулирует функционал по взаимодействую с последовательным портом компьютера. Объект класса позволяет читать из порта входные данные и устанавливать обработчик/операцию вызываемую после получения COM портом данных.
Registered: Boolean
Зарегестрирован обработчик на последовательный порт или нет. True - зарегестрирован, False - незарегестрирован.
Opened: Boolean
Возвращает состояние актиности порта. Если True - порт открыт, False - закрыт.
Data: String
Данные считанные из последовательного порта, после их поступления. Поле позволяет получить данные в обработкичке на поступление данных в последовательный порт.
Port: 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 порту выполнит запись в порт. У метода-обработчика должен быть входной параметр строкового типа, в него передается имя порта.