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

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

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

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

13.06.2014, 21:27. Просмотров 327. Ответов 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; 
};
Помогите справиться с регуляркой.

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

Замена символов в строке - C++
Каким образом выполнять замену в строке. Очень много читал но ничего не понял. Есть какой нибудь простой пример?

Замена в строке символов - C++
&quot;Заменить в строке все вхождения 'abc' на 'xy', а 'mm' на '1234'&quot;. Буду благодарна за оказанную помощь. проблема в том,что я не знаю как...

Замена символов в строке - C++
Помогите решить задачу. Дана строка. Нужно заменить символ &quot;s&quot; на &quot;svb&quot;.

замена символов в строке - C++
Как заменить первый символ в строке &quot;k&quot; на &quot;c&quot; ? И последний &quot;с&quot; на &quot;k&quot; ? Вообще ума не приложу, помогите...

Замена символов в строке - C++
Всем здрасте! Вот тут есть задача: Дается 3 строки. Надо найти 2-ю строку в 1-ой и заменить ее на 3-ю. Мое решение не проходит по...

Замена символов в строке - C++
Здраствуйте! У меня такая задачка: Дано натуральное число n и символы s1,s2..sn.заменить каждую точку многоточием. Заранее благодарен! ...

Замена знаков в строке - C++
если строка начинается и оканчивается одним и тем же знаком, во всей строке заменяет этот знак четвертым символом строки.

Замена символа в строке - C++
Подскажите пожалуйста почему код не работает корректно? #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstring&gt; #include...

Замена слов в строке - C++
Можно ли как-то в строке например Заменить все слова &quot;много&quot;, как это сделать ?

Замена слов в строке - C++
Добрый вечер. Помогите, пожалуйста советом или кодом: требуется полученную строку изменить так, чтобы первое и среднее слово поменялись...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
23243 / 15234 / 4427
Регистрация: 22.10.2011
Сообщений: 27,092
Записей в блоге: 4
14.06.2014, 01:21     Замена %APPDATA%, %WINDIR% и т.п. в строке на реальные каталоги #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
ExpandEnvironmentStrings - для неудачников?
caldwell
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 17
14.06.2014, 10:26  [ТС]     Замена %APPDATA%, %WINDIR% и т.п. в строке на реальные каталоги #3
UI, о нет, это для баловней судьбы. спасибо!)
Ответ Создать тему
Опции темы

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