Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 17
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Нужно отлавливать в строках шаблоны типа %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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2014, 21:27
Ответы с готовыми решениями:

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

Найти только каталоги, содержащие некую маску файла, и вывести эти каталоги по одному разу
Помогите пожалуйста, уже весь рунет облазил а инфы 0. Надо найти только каталоги содержащие некую...

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

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

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
14.06.2014, 01:21 2
ExpandEnvironmentStrings - для неудачников?
1
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 17
14.06.2014, 10:26  [ТС] 3
UI, о нет, это для баловней судьбы. спасибо!)
0
14.06.2014, 10:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2014, 10:26
Помогаю со студенческими работами здесь

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

Операции в строке: поиск, замена, удаление символа в строке
Доброго здравия! В ассемблере совсем новичок, поэтому прошу помощи. Программа должна получать...

Замена подстроки в строке с неизвестными символами в строке
Пример: есть строка: s=&quot;Делаешь, уешь, гниешь, ешь&quot; Нужно заменить окончание ешь на ю ...

создать каталоги YYYYDDMM\Req (например 20170105\Req) и скопировать файлы в "свои" каталоги.
Добрый день! Помогите новичку! Поставлена задача создать bat-ник. Есть несколько файлов,...

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru