Ввод-вывод

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

Путь

GetTempFileName(prefix, suffix: String) String

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

Parameters:
  • prefix (String) – Префикс имени файла

  • suffix (String) – Окончание имени файла с расширением

Return type:

String

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd версии 0.19.4 и выше, поддерживающий команду gettempfilename

  • При наличии плагина, если версия плагина меньше требуемой, будет выброшено исключение

  • При отсутствии плагина метод вернет только уникальное имя файла (без пути) с указанными префиксом и суффиксом

Changed in version AS: 1.25.0_rc13 Добавилась реализация получения временного файла в системе клиента, с помощью плагина Gs3-browser-cmd

GetTempDirectory() String

Метод возвращает путь к временному каталогу. Путь формируется плагином Gs3-browser-cmd из пути до временного каталога операционной системы и вложенных подпапок “GlobalSystem” и “gs3-browser-cmd”. Если указанные подпапки отсутствуют, они будут созданы автоматически.

Return type:

String

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd версии 0.19.4 и выше, поддерживающий команду gettempdirectory

  • При наличии плагина, если версия плагина меньше требуемой, будет выброшено исключение

  • При отсутствии плагина метод вернет пустую строку

Changed in version AS: 1.25.0_rc27 Добавилась реализация получения пути в системе клиента, с помощью плагина Gs3-browser-cmd

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

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

MkDir(Path: String)

Создаёт каталог по указанному пути, включая все промежуточные каталоги, которые могут отсутствовать.

Parameters:

Path (String) – Полный путь к каталогу.

Warning

Может вызвать исключение ApplicationException в случаях: если указан пустой путь, путь содержит недопустимые символы, превышена длина пути (Windows) или нет прав для доступа.

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd версии 0.19.6 и выше, поддерживающий команду mkdir

  • При наличии плагина, если версия плагина меньше требуемой, будет брошено исключение

  • При отсутствии плагина будет брошено исключение.

Changed in version AS: 1.25.2 Добавилась реализация с помощью плагина Gs3-browser-cmd

RemoveDir(sPath: String) Variant

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

Parameters:

sPath (String) – Имя каталога (полное).

Return type:

Variant

Warning

Не реализовано

RemoveDirEx(sPath: String; bFlag: Boolean) Boolean

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

Parameters:
  • sPath (String) – Имя каталога (полное).

  • bFlag (Boolean) – Режим удаления каталога, если True, каталог будет удален вместе с подкаталогами и файлами, если False, то действие аналогично RemoveDir.

Return type:

Boolean

Warning

Не реализовано

DeleteFile(FileName: String) Boolean

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

Parameters:

FileName (String) – Полное имя файла для удаления.

Return type:

Boolean

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd версии 0.19.5 и выше, поддерживающий команду deletefile

  • При наличии плагина, если версия плагина меньше требуемой, будет выброшено исключение

  • При отсутствии плагина метод бросит исключение

Changed in version AS: 1.25.0_rc42 Добавилась реализация удаления файла в файловой системе клиента с помощью плагина Gs3-browser-cmd

RenameFile(OldName, NewName: String) Variant

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

Parameters:
  • OldName (String) – Полное старое имя файла.

  • NewName (String) – Полное новое имя файла.

Return type:

Variant

Warning

Не реализовано

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

DirectoryExists(Path: String) Boolean

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

Parameters:

Path (String) – Полный путь до каталога.

Return type:

Boolean

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd версии 0.19.5 и выше, поддерживающий команду getfileinfo

  • При наличии плагина, если версия плагина меньше требуемой, будет брошено исключение

  • При отсутствии плагина будет брошено исключение

Changed in version AS: 1.25.2 Добавилась реализация с помощью плагина Gs3-browser-cmd

FileExists(FileName: String) Boolean

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

Parameters:

FileName (String) – Полное имя файла (с именем диска и каталога).

Return type:

Boolean

Attention

Changed in version AS: 1.25.0_rc43 Добавилась реализация с помощью плагина Gs3-browser-cmd

GetFileDateTime(FileName: String) TDateTime

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

Parameters:

FileName (String) – Полное имя файла.

Return type:

TDateTime

Пример использования
<Pascal>
  FileName := 'TEST.doc';
  If FileExists(FileName) then
    ShowMessage(DateTimeToStr(GetFileDateTime(FileName)));
</Pascal>

Warning

Не реализовано

FileSize(sFileName: Variant) Integer

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

Parameters:

sFileName (Variant) – Полное имя файла (с именем диска и каталога).

Return type:

Integer

Warning

Не реализовано

GetDirFileList(Path: String) Array

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

Parameters:

Path (String) – Имя каталога (полное).

Return type:

Array

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd версии 0.19.4 и выше, поддерживающий команду getdirfilelist

  • При наличии плагина, если версия плагина меньше требуемой, будет брошено исключение

  • При отсутствии плагина функция бросит исключение

Changed in version AS: 1.25.0_rc18 Реализовано с помощью плагина Gs3-browser-cmd

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

LoadFromFile(FileName: String) String

Загружает текст из файла в кодировке utf-8.

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

Для загрузки в других кодировках подойдет метод LoadTextFromFile().

Parameters:

FileName (String) – Имя файла.

Return type:

String

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd, поддерживающий команду uploadfile

  • При наличии плагина загрузка файла осуществляется непосредственно из файловой системы пользователя

  • При отсутствии плагина загрузка будет выполнена обозревателем, причем:

    • Если перед вызовом LoadFromFile вызывался AskFileNameForOpen() или AskFileNamesForOpen() и указано выбранное имя файла, то загружается ранее выбранный файл.

    • В иных случаях откроется диалоговое окно для выбора файла. Если его отменить, то функция вернет null

  • BOM не распознается и не используется при загрузке

Пример использования
<PASCAL>
  str := LoadFromFile('D:\utf8file_in.txt'); // Загружаем utf-8(unicode) файл
  ShowMessage(str); // Выводим загруженную строку
</PASCAL>

Changed in version AS: 1.25.0_rc24 Добавлена загрузка файла из файловой системы клиента с помощью плагина Gs3-browser-cmd

LoadTextFromFile(FileName: String; Encoding: Integer) String

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

Parameters:
  • FileName (String) – Имя файла.

  • Encoding (Integer) –

    Кодировка файла. Доступные значения:

    • 437 - OEM United States

    • 855 - OEM Cyrillic (primarily Russian)

    • 866 - OEM Russian; Cyrillic (DOS)

    • 1200 - UTF-16 LE

    • 1201 - UTF-16 BE

    • 1251 - ANSI Cyrillic; Cyrillic (Windows)

    • 1252 - ANSI Latin 1; Western European (Windows)

    • 10007 - Cyrillic (Mac)

    • 12000 - UTF-32 LE

    • 12001 - UTF-32 BE

    • 20866 - Russian (KOI8-R); Cyrillic (KOI8-R)

    • 28591 - ISO 8859-1 Latin 1; Western European (ISO)

    • 28592 - ISO 8859-2 Central European; Central European (ISO)

    • 28595 - ISO 8859-5 Cyrillic

    • 65001 - UTF-8

    Warning

    При использовании не поддерживаемых кодировок будет выброшено исключение.

Return type:

String

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd, поддерживающий команду uploadfile

  • При наличии плагина загрузка файла осуществляется непосредственно из файловой системы пользователя

  • При отсутствии плагина загрузка будет выполнена обозревателем, причем:

    • Если перед вызовом LoadTextFromFile() вызывался AskFileNameForOpen() или AskFileNamesForOpen() и указано выбранное имя файла, то загружается ранее выбранный файл.

    • В иных случаях откроется диалоговое окно для выбора файла. Если его отменить, то функция вернет null

  • BOM не распознается и не используется при загрузке

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

Changed in version AS: 1.25.0_rc18 Добавлена загрузка файла из файловой системы клиента с помощью плагина Gs3-browser-cmd

LoadFromFileToBlob(FileName: String) Variant

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

Parameters:

FileName (String) – Имя файла.

Return type:

Variant

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd, поддерживающий команду uploadfile

  • При наличии плагина файлы загружаются из файловой системы пользователя по указанному полному пути.

  • При отсутствии плагина загрузка будет выполнена обозревателем, причем:

    • Если перед вызовом LoadFromFileToBlob вызывался AskFileNameForOpen() или AskFileNamesForOpen() и указано выбранное имя файла, то загружается ранее выбранный файл.

    • В иных случаях откроется диалоговое окно для выбора файла. Если его отменить, то функция вернет null

Пример использования
<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>

Changed in version AS: 1.25.0_rc24 Добавлена загрузка файла из файловой системы клиента с помощью плагина Gs3-browser-cmd

Если его отменить, то функция вернет null

SaveToFile(FileName, FileText: String)

Сохраняет текст FileText в файл FileName. Если имя файла пустое - вызывается диалоговое окно выбора файла.

Parameters:
  • FileName (String) – Имя файла.

  • FileText (String) – Сохраняемый текст.

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd, поддерживающий команды downloadfile, askfilename

  • При наличии плагина сохранение файла осуществляется непосредственно в файловую систему пользователя

  • При отсутствии плагина произойдет сохранение файла с помощью обозревателя

Пример использования
    <sql>
      <sAfter>
        [out svRes]
        begin
          :svRes := AC_Loader.GetAfterScript;
        end;
      </sAfter>
    </sql>

<pascal>
  v := ExecSqlEx('sAfter', 'svRes', [ftOraClob], ['']);
  SaveToFile('', v[0]);
</pascal>

Changed in version AS: 1.25.0_ms6 Добавлена реализация с помощью плагина Gs3-browser-cmd

SaveToFile()

Экспортирует содержимое выборки в файл формата .xls во временную директорию

Пример использования
<pascal>
  SaveToFile();
</pascal>
SaveBlobToFile(FileName: String; BlobData: Variant)

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

Parameters:
  • FileName (String) – Имя файла

  • BlobData (Variant) – Бинарные данные.

Attention

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd, поддерживающий команду downloadfile

  • При наличии плагина сохранение файла осуществляется непосредственно в файловую систему пользователя

  • При отсутствии плагина произойдет сохранение файла с помощью обозревателя

Пример использования
<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>

Changed in version AS: 1.25.0_ms6 Добавлена реализация с помощью плагина Gs3-browser-cmd

SaveTextToFile(FileName: String; Encoding: Integer; TextData: String; Preamble: Boolean)

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

Parameters:
  • FileName (String) – Имя файла.

  • Encoding (Integer) –

    Кодировка файла. Доступные значения:

    • 437 - OEM United States

    • 855 - OEM Cyrillic (primarily Russian)

    • 866 - OEM Russian; Cyrillic (DOS)

    • 1200 - UTF-16 LE

    • 1201 - UTF-16 BE

    • 1251 - ANSI Cyrillic; Cyrillic (Windows)

    • 1252 - ANSI Latin 1; Western European (Windows)

    • 10007 - Cyrillic (Mac)

    • 12000 - UTF-32 LE

    • 12001 - UTF-32 BE

    • 20866 - Russian (KOI8-R); Cyrillic (KOI8-R)

    • 28591 - ISO 8859-1 Latin 1; Western European (ISO)

    • 28592 - ISO 8859-2 Central European; Central European (ISO)

    • 28595 - ISO 8859-5 Cyrillic

    • 65001 - UTF-8

    Warning

    При использовании не поддерживаемых кодировок будет выброшено исключение.

  • TextData (String) – Массив символьных данных.

  • Preamble (Boolean) –

    Флаг определяет сохранять префикс BOM или нет.

    Warning

    префикс добавляется всегда и аргумент Preamble не влияет на добавление

Attention

  • Если в аргумент Encoding передано значение, отсутствующее в перечислении, будет выброшено исключение.

  • Для корректной работы метода в Application Server требуется установленный плагин Gs3-browser-cmd, поддерживающий команду downloadfile

  • При наличии плагина сохранение файла осуществляется непосредственно в файловую систему пользователя

  • При отсутствии плагина произойдет сохранение файла с помощью обозревателя

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

Changed in version AS: 1.25.0_ms6 Добавлена реализация с помощью плагина Gs3-browser-cmd