MyTetra Share
Делитесь знаниями!
Ввод-вывод
Время создания: 13.04.2017 15:32
Раздел: Global - Programming - Скрипт
Запись: xintrea/mytetra_db_mcold/master/base/1492086733dnocqwqx24/text.html на raw.githubusercontent.com

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: StringbFlag: 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: StringEncoding: 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: StringABlobData: 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: StringAEncoding: IntegerAPreamble: 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: VariantFileName: 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)

Метод закрывает файл, открытый методоми AppendRewrite или 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 в операцию-обработчик).

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

Return type:

IDispatch

Connected: Boolean

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

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

Return type:

Boolean

Disconnect()

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

Connect(ClientCOM: IDispatchOperataion: 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

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

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

classTbtkScriptSerialPortDcbObject

Класс предоставляет доступ системной структуре 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

classTbtkScriptSerialPortObject

Класс инкапсулирует функционал по взаимодействую с последовательным портом компьютера. Объект класса позволяет читать из порта входные данные и устанавливать обработчик/операцию вызываемую после получения 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 порту выполнит запись в порт. У метода-обработчика должен быть входной параметр строкового типа, в него передается имя порта.

 
MyTetra Share v.0.59
Яндекс индекс цитирования