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

(По материалам Freedom Scientific Developer Network)
Дата публикации:2004
Twitter Facebook Vkontakte

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

Функция FileExists

Описание: определяет, существует ли указанный файл или папка, т.е проверяет корректность указанного пути.

Возвращаемое значение: Int, TRUE - если указанный путь существует.

Параметр 1:

String. Путь, который должен быть проверен. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция FilenameGetNearestMatch

Описание: Ищет файл, имя которого наиболее близко соответствует указанному имени. Функция использует два дополнительных параметра, чтобы ограничивать поиск. Эта функция может быть очень полезна для поиска JSI файлов, чтобы связывать настройки с документом whose настройки которого похожи и отражены в похожих названиях файлов, например, ежемесячные отчеты Excel.

Возвращаемое значение: String, Имя файла, наиболее совпадающее с указанным.

Параметр 1:

String, Имя искомого файла с указанием пути. Если путь к файлу не указан, то подразумевается папка со скриптами. Этот параметр является обязательным.

Параметр 2:

Int, Определяет минимальное число символов в именах файлов, которые должны совпадать, например, если вас интересуют только jsi файлы, загружаемые при старте excel_, то значение параметра должно быть 6. Этот параметр является обязательным.

Параметр 3:

Int, Установите его в true, если расширение файла должно совпадать с указанным. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. JAWS 4.51 и более поздних

Функция FileNameList

Описание: Возвращает разделённый список имён файлов, отобранных по указанному признаку. Например, чтобы получить список файлов со звуковыми схемами (scheme), надо указать "*.smf" в первом параметре этой функции.

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

Параметр 1:

String, Шаблон для отбора файлов, включая путь. Если путь не указан, то добавляется путь к папке Jawsxx\Setting\(Language). Этот параметр является обязательным.

Параметр 2:

String, Символ, которым будут разделены имена файлов в списке. Если разделитель не указан, то будет использован \007. Этот параметр может отсутствовать.

Эта функция доступна в следующих версиях:

  1. JAWS 5.00 и более поздних

Функция GetFileDate

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

Возвращаемое значение: Int, Целове число, содержащее дату последнего изменения в формате: yyyymmdd. (четыре цифры года, две цифры месяца и две цифры числа), например, число 18251214 означает дату 14 декабря 1825 года.

Параметр 1:

String, Полный и корректный путь к нужному файлу. Используйте функцию GetAppFilePath, чтобы получить полный путь к активному приложению. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция IniReadInteger

Описание: читает целочисленное значение из текстового файла, представленного в формате ini. Формат ini означает, что файл содержит секции, имена которых заключены в квадратные скобки, а внутри секций располагаются пары "ключ = значение" (каждая на отдельной строке).

Возвращаемое значение: Int, Возвращает число, назначенное указанному ключу. Если ключ не найден, то возвращает значение, указанное для возврата в этом случае.

Параметр 1:

String, Название секции. Это должна быть строковая переменная, либо строка, заключённая в двойные кавычки. Этот параметр является обязательным.

Параметр 2:

String, Имя ключа, значение которого необходимо получить. Этот параметр является обязательным.

Параметр 3:

Int, Число, которое возвратит функция, если не найдет указанный ключ в указанной секции. Этот параметр является обязательным.

Параметр 4:

String, Полный и корректный путь к файлу, откуда будет прочитано значение указанного ключа. Файл должен быть в формате INI. Если путь не указан, то подразумевается папка со скриптами. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция IniReadSectionKeys

Описание: возвращает ключи из секции файла формата ini. Файл в стиле ini - это файл, содержащий секции с ключами и их значениями. Названия секций заключаются в квадратные скобки, а каждая пара ключ=значение располагается на отдельной строке.

Возвращаемое значение: String, Имена ключей в указанной секции в виде строки, в которой ключи разделены символом вертикальной черты (|). Если в секции нет ключей, то возвращается пустая строка.

Параметр 1:

String, Имя секции, ключи из которой требуется получить. Это имя должно быть заключено в двойные кавычки или быть строковой переменной. Этот параметр является обязательным.

Параметр 2:

String, Строка или строковая переменная, содержащая путь к файлу, где находится указанная секция.Если полный путь не указан, то подразумевается папка <JFW>\Settings. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. JAWS 4.51 и более поздних

Функция IniReadSectionNames

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

Возвращаемое значение: String, Названия секций, разделенные символом вертикальной черты (|). Если файл не содержит секций, то возвращается пустая строка.

Параметр 1:

String, Строка или строковая переменная, содержащая путь к нужному файлу в формате INI. Если полный путь не указан, то подразумевается папка <JFW>\Settings. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. JAWS 4.51 и более поздних

Функция IniReadString

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

Возвращаемое значение: String, Прочитанное значение ключа или значение, которое указано для случая, когда ключ не будет найден в указанной секции.

Параметр 1:

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

Параметр 2:

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

Параметр 3:

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

Параметр 4:

String, Строка или строковая переменная, содержащая путь к файлу, откуда должно быть прочитано значение. Если полный путь не указан, то подразумевается папка <JFW>\Settings. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция IniRemoveKey

Описание: удаляет ключ и его значение из файла в формате INI. Этот формат подразумевает, что файл содержит секции, имена которых взяты в квадратные скобки, а внутри секций находятся пары "ключ = значение".

Возвращаемое значение: Int, TRUE - если ключ был успешно удален, в противном случае - FALSE.

Параметр 1:

String, Название секции, откуда должны быть удалены ключ и его значение. Этот параметр является обязательным.

Параметр 2:

String, Имя ключа, который должен быть удален. Этот параметр должен быть либо строковым выражением, либо строковой переменной. Этот параметр является обязательным.

Параметр 3:

String, Строка или строковая переменная, содержащая путь к файлу, из которого должен быть удалён ключ. Если полный путь не указан, то подразумевается <JFW>\Settings. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция IniRemoveSection

Описание: удаляет указанную секцию из файла в формате INI. Этот формат подразумевает, что файл содержит секции, имена которых заключены в квадратные скобки, а также пары "ключ = значение".

Возвращаемое значение: Int, TRUE - если секция успешно удалена, FALSE - в противном случае.

Параметр 1:

String, Строка или строковая переменная, содержащая название секции, которая должна быть удалена. Этот параметр является обязательным.

Параметр 2:

String, Строка или строковая переменная, содержащая путь к файлу, откуда должна быть удалена секция. Если полный путь не указан, то подразумевается <JFW>\Settings. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Функция IniWriteInteger

Описание: записывает целочисленное значение в файл формата INI. Этот формат подразумевает, что файл содержит секции, имена которых заключены в квадратные скобки, а также пары "ключ = значение".

Возвращаемое значение: Int, TRUE - если значение было успешно записано. Если файл, секция или ключ не существуют, то они будут созданы.

Параметр 1:

String, Название секции, куда должно быть записано новое значение ключа. Этот параметр является обязательным.

Параметр 2:

String, Имя ключа, для которого записывается значение. Этот параметр является обязательным.

Параметр 3:

Int, Целочисленное значение, которое должно быть записано в указанный ключ. Этот параметр является обязательным.

Параметр 4:

String, Имя файла, в который предполагается записать значение. Если полный путь не указан, то предполагается <JFW>\Settings. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних

Пример

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

...
Var
	Int retValue

	Let retValue =INIWriteInteger ("OurSectionName", "Year", 1825, "C:\\windows\\myfile.ini")
	If retValue Then
		Say("Значение успешно сохранено", OT_MESSAGE)
	Else
		Say("Ошибка записи", OT_MESSAGE)
EndIf
	Let retValue =INIWriteInteger ("OurSectionName", "Hour", 11, "myfile.ini")
	If retValue Then
		Say("Значение успешно сохранено", OT_MESSAGE)
	Else
		Say("Ошибка записи", OT_MESSAGE)
	EndIf
	...

в случае успешной записи значений в папке C:\WINDOWS\ появится файл myfile.ini, в котором будут такие строки:

[OurSectionName]
Year=1825

Второй файл будет создан в папке JawsXX\SETTING\ENU\ и будет содержать:

[OurSectionName]
Hour=11

Функция IniWriteString

Описание: записывает строковое значение ключа в файл в формате INI. Этот формат подразумевает, что файл содержит секции, имена которых заключены в квадратные скобки, а также пары "ключ = значение".

Возвращаемое значение: Int, TRUE - если значение успешно записано. Если файл, секция или ключ не существуют, то они будут созданы.

Параметр 1:

String, Название секции, в которую должно быть записано новое значение ключа. Этот параметр является обязательным.

Параметр 2:

String, Имя ключа, для которого записывается новое значение. Этот параметр является обязательным.

Параметр 3:

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

Параметр 4:

String, Имя файла, в который будет записано новое значение ключа. Если полный путь не указан, то подразумевается <JFW>\Settings. Этот параметр является обязательным.

Эта функция доступна в следующих версиях:

  1. PAC Mate 1.10 и более поздних
  2. JAWS 4.51 и более поздних


Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2019