Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.4. Отведение памяти и преобразование строк
А.5.4.10. rdsGetRelFilePath – полный путь к файлу в сокращенный
Функция rdsGetRelFilePath преобразует полный путь к файлу в сокращенный, содержащий специальные символические константы RDS, и возвращает динамическую строку, содержащую сокращенный путь. Файл, путь к которому обрабатывается, может физически не существовать или быть недоступным в данный момент – функция работает только со строкой пути.
RDSSTR RDSCALL rdsGetRelFilePathA( // UTF8 RDSCSTR FileName, // Полный путь (UTF8) RDSCSTR AltDefPath, // Альтернативный путь по умолчанию (UTF8) int *pLength // Возвращаемая длина строки ); RDSWSTR RDSCALL rdsGetRelFilePathW( // UTF16 RDSWCSTR FileName, // Полный путь (UTF16) RDSWCSTR AltDefPath, // Альтернативный путь по умолчанию (UTF16) int *pLength // Возвращаемая длина строки ); // Функция-псевдоним RDSXSTR RDSCALL rdsGetRelFilePath( // Кодировка по умолчанию RDSXCSTR FileName, // Полный путь (кодировка по умолчанию) RDSXCSTR AltDefPath, // Альтернативный путь по умолчанию (кодировка по умолчанию) int *pLength // Возвращаемая длина строки );
Тип указателя на эту функцию
RDS_SSSpI (для UTF8) или RDS_WsWsWspI (для UTF16)
Параметры
- FileName (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку с полным путем к файлу. Если начало этого пути совпадет с одним из стандартных путей RDS (см. функцию rdsGetSystemPath), вместо этого пути будет подставлена одна из символических констант.
- AltDefPath (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на путь по умолчанию, который нужно удалить из полного пути. В зависимости от значения этого
параметра, сокращенный путь формируется следующим образом:
AltDefPath Формирование сокращенного пути NULL Если начало FileName совпадает с путем к папке, в которой находится загруженная в данный момент схема, эта часть пути будет удалена. Таким образом, в сокращенном пути останутся только подпапки в папке схемы и само имя файла. путь к папке Если начало FileName совпадает с AltDefPath, AltDefPath удаляется из сокращенного пути. Таким образом, в сокращенном пути останутся только подпапки в AltDefPath и само имя файла. пустая строка Сравнение начала FileName с какими-либо путями не производится. - pLength (int*)
- Указатель на целую переменную, в которую функция запишет длину строки получившегося сокращенного пути к файлу. Если вызвавшей программе не нужно это значение, в pLength можно передать NULL.
Возвращаемое значение
Указатель на созданную в динамической памяти строку, содержащую сокращенный путь к указанному файлу. Если получить этот путь невозможно, возвращается NULL.
Примечания
Динамическая строка, созданная функцией rdsGetRelFilePath, должна быть обязательно освобождена вызовом rdsFree.
Функцию rdsGetRelFilePath чаще всего используют для того, чтобы хранить в параметрах блоков сокращенные относительные пути вместо полных. В этом случае перенос папки со схемой на другую машину или в другую папку не приводит к потере работоспособности схемы, поскольку все пути в параметрах блоков будут указаны относительно расположения файла схемы.
См. также