Samwatas
|
Posted: Fri Oct 01, 2010 14:39 Post subject: |
|
|
Samwatas wrote: | Я сейчас обдумываю концепцию новой утилиты, которая будет и читать и писать и выводить отладочную информацию и т.д.. В общем есть у меня парочка интересных идей, осталось их реализовать в коде. |
Процесс движется. Готово примерно 70% (если это кому-то интересно).
Пишу я не утилиту, а библиотеку UDF функций (поклонники АвтоИта меня поймут). Пока написаны следующие функции:
_UDF_WDX_GetFieldIndexByName($sWDXPlugName, $sFieldName) - Получение Индекса по Имени Поля (плагописатели поймут, о чём речь - ).
_UDF_WDX_GetFieldNameByIndex($sWDXPlugName, $iFieldIndex) - наоборот (на всякий пожарный).
_UDF_WDX_GetUnitsArray($sWDXPlugName, $iFieldIndex) - получаем массив of Units),
_UDF_WDX_GetReturnedValueType($sWDXPlugName, $iFieldIndex, $iString = 0) - тип возращаемого значения (например ft_numeric_32, ft_string и т.д.)
_UDF_WDX_IsGetANSISupported($sWDXPlugName) - проверка наличия функции ContentGetValue)
_UDF_WDX_IsGetUNICODESupported($sWDXPlugName) - проверка наличия функции ContentGetValueW)
_UDF_WDX_IsSetANSISupported($sWDXPlugName) - проверка наличия функции ContentSetValue)
_UDF_WDX_IsSetUNICODESupported($sWDXPlugName) - проверка наличия функции ContentSetValueW)
_UDF_WDX_Info($sWDXPlugName, $iString = 0) - возвращает двухмерный массив всех полей плагина, их типа, и их Units.
Самые интересные функции сейчас в процессе написания. Это:
_UDF_WDX_GetValue($sWDXPlugName, $sFileName, $iFieldIndex, $iUnitIndex=0) - чтение конкретного значения.
_UDF_WDX_SetValue($sWDXPlugName, $sFileName, $iFieldIndex, $sValue, $iUnitIndex=0) - запись конкретного значения.
С типами ft_numeric_хх, ft_string и некоторыми другими всё ясно. Гораздо интереснее, что делать с типами ft_date, ft_time и некоторыми другими - их нужно приводить в форматированный вид - но как лучше? Фиксированный вид типа YYYY-MM-DD или в зависимости от региональных настроек (а это может быть и MM/DD/YYYY например, если установлены американские региональные настройки.). Так что подумать есть над чем.
П.С. Консольную утилиту можно будет потом сделать без труда (на базе этой библиотеки), если в этом у кого-то возникнет потребность. |
|