Текущий раздел:

Описания RDS

Приложения

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

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

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

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

# Приложения

## Приложение А. Функции, константы и структуры 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):

  $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.

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

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

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

Примечания

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

Пример

Пример использования функции rdsGetFullFilePath приведен в §2.13.6 руководства программиста.

См. также

rdsGetRelFilePath, rdsGetSystemPath, rdsFree.