Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
caldwell
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 17
#1

Замена %APPDATA%, %WINDIR% и т.п. в строке на реальные каталоги - C++

13.06.2014, 21:27. Просмотров 344. Ответов 2
Метки нет (Все метки)

Здравствуйте!

Нужно отлавливать в строках шаблоны типа %APPDATA%, %WINDIR% и т.п. Заменять их на реальные каталоги системы и втыкать обратно. С тем, как из шаблона получить реальный путь разобрался, а вот как автоматизировать отлов и замену разобраться не могу.

Написал вот такую функцию, что бы мапить шаблоны
C++
1
bool getPathOfAlias(const wchar_t *szAlias, std::wstring &wsPath);
Пытаюсь ловить шаблоны регуляркой в начале строки, но чет ничего не находит, хотя тестер регэкспов показывает, что регулярка правильная.
C++
1
2
3
4
5
6
7
8
9
10
11
12
using namespace std;
 
void checkForAlias(const std::wstring& wsPath) 
{
    wsmatch wideMatch;
    // "%APPDATA%\\Adobe\\Flash Player\\"
    wregex wrx(L"^(%.*?%)");
    bool found = regex_match(wsPath.cbegin(), wsPath.cend(), wideMatch, wrx);
    printf("Regex result: %s\n", found?"true":"false");
    if (found)
        wcout << L"The matching text is:" << wideMatch.str() << endl; 
};
Помогите справиться с регуляркой.

И еще есть ли какой-нить хитрый способ сделать замену регэкспом с промежуточным маппингом через свою функцию?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2014, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Замена %APPDATA%, %WINDIR% и т.п. в строке на реальные каталоги (C++):

Добавить указанные в командной строке каталоги в переменную окружения PATH - CMD/BAT
Добрый день. Вторая задача: &quot;Напишите пакетный командный файл, добавляющий указанные в командной строке каталоги в переменную...

Как узнать значение %windir% ? - Visual Basic
как можно узнать путь, куда установл windows. т.е значение %windir% ?

Пути, типа %SYSTEMDRIVE%, %WINDIR%. - Visual Basic .NET
Здравствуйте уважаемые! Относительно недавно начал изучать Visual Basic .net. Разумеется, читаю литературу, попутно повторяя все на...

Есть ли что-нибудь наподобие EnvironmentVariable для %windir%\system32? - Lazarus
Как надежнее всего получить путь к system32? Можно конечно GetEnvironmentVariable('SYSTEMROOT') + '\system32' но можно ли понадежнее?...

%appdata% - Delphi
Скажите, плиз, как использовать переменную окружения %appdata% в TFileStream Например, пишешь: Stream := ...

замена в строке - Delphi
помогите плиз. не знаю как записать. есть строка, например 12345(межет быть любой длины и с любыми числами). надо заменить 1-ю цифру на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23564 / 15558 / 4603
Регистрация: 22.10.2011
Сообщений: 27,590
Записей в блоге: 5
14.06.2014, 01:21 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
ExpandEnvironmentStrings - для неудачников?
1
caldwell
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 17
14.06.2014, 10:26  [ТС] #3
UI, о нет, это для баловней судьбы. спасибо!)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2014, 10:26
Привет! Вот еще темы с ответами:

Замена в строке - Python
Помогите решить проблему, в строке &quot;1. Повышение квалификации. Формализованные модели. Институт. Код потока – 1234. Начало занятий –...

Замена в строке - Python
Дана строка t1 = &quot;0.27313&quot; Как заменить &quot;.&quot; на &quot;,&quot; ?

Замена в строке - Assembler
Всем Привет! Помогите плиз с задачкой: Заменить во всех строках текста слова, являющиеся числами, на слово &quot;&lt;число&gt;&quot;. Добавлено...

Замена в строке \r\n на <br /><br /> - PHP
Пробовал использовать str_replace, но данное действие заменяет все переходны на новую строку, а есл их несколько подряд, допустим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru