Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.4. Отведение памяти и преобразование строк
А.5.4.9. rdsGetFullFilePath – сокращенный путь к файлу в полный
Функция rdsGetFullFilePath преобразует сокращенный (содержащий специальные символические константы RDS) путь к файлу в полный путь, и возвращает динамическую строку, содержащую этот полный путь. Файл, путь к которому обрабатывается, может физически не существовать или быть недоступным в данный момент – функция работает только со строкой пути.
RDSSTR RDSCALL rdsGetFullFilePathA( // UTF8 RDSCSTR FileName, // Сокращенный путь (UTF8) RDSCSTR AltDefPath, // Альтернативный путь по умолчанию (UTF8) int *pLength // Возвращаемая длина строки ); RDSWSTR RDSCALL rdsGetFullFilePathW( // UTF16 RDSWCSTR FileName, // Сокращенный путь (UTF16) RDSWCSTR AltDefPath, // Альтернативный путь по умолчанию (UTF16) int *pLength // Возвращаемая длина строки ); // Функция-псевдоним RDSXSTR RDSCALL rdsGetFullFilePath( // Кодировка по умолчанию RDSXCSTR FileName, // Сокращенный путь (кодировка по умолчанию) RDSXCSTR AltDefPath, // Альтернативный путь по умолчанию (кодировка по умолчанию) int *pLength // Возвращаемая длина строки );
Тип указателя на эту функцию
RDS_SSSpI (для UTF8) или RDS_WsWsWspI (для UTF16)
Параметры
- FileName (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель
на строку с сокращенным путем к файлу. Может начинаться с одной из символических констант,
которые будут заменены на путь к одной из
стандартных папок RDS (см. также функцию
rdsGetSystemPath):
Обнаружив в начале строки FileName одну из перечисленных выше констант, функция подставляет вместо нее полный путь к соответствующей папке без завершающей обратной косой черты. Если FileName не содержит ни констант, ни полного пути, к этому имени добавляется либо путь из параметра AltDefPath, если он не равен NULL, либо путь к папке, в которой находится файл загруженной в данный момент схемы, если AltDefPath равен NULL.
$DLL$ Полный путь к папке стандартных DLL (папка «Dll\» внутри папки установки RDS). $INI$ Полный путь к папке настроек (при портативной установке – папка «UserData\» внутри папки установки RDS, при фиксированной установке – папка в общей папке данных программ Windows). $LIB$ Полный путь к библиотеке блоков (папка «Library\» внутри папки настроек RDS). $MODELS$ Полный путь к папке стандартных автокомпилируемых моделей (папка «Models\» внутри папки настроек RDS). $PANEL$ Полный путь к панели блоков (папка «Panel\» внутри папки настроек RDS). $RDSINCLUDE$ Полный путь к папке файлов-заголовков (по умолчанию – папка «Include\» внутри папки установки RDS). $TEMP$ Полный путь к собственной временной папке RDS (папка «Temp\» внутри папки настроек RDS). $WINTEMP$ Полный путь к папке временных файлов Windows. - AltDefPath (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку, которая добавляется к строке FileName, если последняя не содержит ни приведенных выше констант, ни полного пути. Если этот параметр равен NULL, к FileName будет добавлен путь к папке, в которой находится файл загруженной в данный момент схемы.
- pLength (int*)
- Указатель на целую переменную, в которую функция запишет длину строки получившегося полного пути к файлу. Если вызвавшей программе не нужно это значение, в pLength можно передать NULL.
Возвращаемое значение
Указатель на созданную в динамической памяти строку, содержащую полный путь к указанному файлу. Если получить полный путь невозможно, возвращается NULL.
Примечания
Динамическая строка, созданная функцией rdsGetFullFilePath, должна быть обязательно освобождена вызовом rdsFree.
Пример
Пример использования функции rdsGetFullFilePath приведен в §2.13.6 руководства программиста.
См. также