Навигация:
<< >> Оглавление Указатель

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.4. Отведение памяти и преобразование строк

А.5.4.10. rdsGetRelFilePath – полный путь к файлу в сокращенный

Функция rdsGetRelFilePath преобразует полный путь к файлу в сокращенный, содержащий специальные символические константы RDS, и возвращает динамическую строку, содержащую сокращенный путь. Файл, путь к которому обрабатывается, может физически не существовать или быть недоступным в данный момент – функция работает только со строкой пути.

    rdsGetRelFilePathA( // UTF8
     FileName,    // Полный путь (UTF8)
     AltDefPath,  // Альтернативный путь по умолчанию (UTF8)
    int *pLength         // Возвращаемая длина строки
  );
    rdsGetRelFilePathW( // UTF16
     FileName,   // Полный путь (UTF16)
     AltDefPath, // Альтернативный путь по умолчанию (UTF16)
    int *pLength         // Возвращаемая длина строки
  );
  // 
    rdsGetRelFilePath( // Кодировка по умолчанию
     FileName,   // Полный путь (кодировка по умолчанию)
     AltDefPath, // Альтернативный путь по умолчанию (кодировка по умолчанию)
    int *pLength         // Возвращаемая длина строки
  );

Тип указателя на эту функцию

RDS_SSSpI (для UTF8) или RDS_WsWsWspI (для UTF16)

Параметры

FileName (RDSCSTR, RDSWCSTR, RDSXCSTR)
Указатель на строку с полным путем к файлу. Если начало этого пути совпадет с одним из стандартных путей RDS (см. функцию rdsGetSystemPath), вместо этого пути будет подставлена одна из символических констант.
AltDefPath (, , )
Указатель на путь по умолчанию, который нужно удалить из полного пути. В зависимости от значения этого параметра, сокращенный путь формируется следующим образом:
AltDefPath Формирование сокращенного пути
NULL Если начало FileName совпадает с путем к папке, в которой находится загруженная в данный момент схема, эта часть пути будет удалена. Таким образом, в сокращенном пути останутся только подпапки в папке схемы и само имя файла.
путь к папке Если начало FileName совпадает с AltDefPath, AltDefPath удаляется из сокращенного пути. Таким образом, в сокращенном пути останутся только подпапки в AltDefPath и само имя файла.
пустая строка Сравнение начала FileName с какими-либо путями не производится.
pLength (int*)
Указатель на целую переменную, в которую функция запишет длину строки получившегося сокращенного пути к файлу. Если вызвавшей программе не нужно это значение, в pLength можно передать NULL.

Возвращаемое значение

Указатель на созданную в динамической памяти строку, содержащую сокращенный путь к указанному файлу. Если получить этот путь невозможно, возвращается NULL.

Примечания

Динамическая строка, созданная функцией rdsGetRelFilePath, должна быть обязательно освобождена вызовом rdsFree.

Функцию rdsGetRelFilePath чаще всего используют для того, чтобы хранить в параметрах блоков сокращенные относительные пути вместо полных. В этом случае перенос папки со схемой на другую машину или в другую папку не приводит к потере работоспособности схемы, поскольку все пути в параметрах блоков будут указаны относительно расположения файла схемы.

См. также

rdsGetFullFilePath, rdsGetSystemPath, rdsFree.


<< >> Оглавление Указатель