![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| _Dream |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
Всем привет собственно сабж.
есть файл .sln например след содержания: Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceLocaleChecker", "ResourceLocaleChecker.csproj", "{3DE44362-1B46-46EB-88BE-50C30A69D7B4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {3DE44362-1B46-46EB-88BE-50C30A69D7B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3DE44362-1B46-46EB-88BE-50C30A69D7B4}.Debug|Any CPU.Build.0 = Debug|Any CPU {3DE44362-1B46-46EB-88BE-50C30A69D7B4}.Release|Any CPU.ActiveCfg = Release|Any CPU {3DE44362-1B46-46EB-88BE-50C30A69D7B4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal в нем как видно хранится информация о проектах(в этом 1 проект) - "ResourceLocaleChecker" - название проекта + это его путь относительно самого файла солюшена. как мне получить эту инфу? можно тупо Regex'om вытащить но должен быть и другой способ.. что нить с Assembly или еще чем. Заранее спасибо. --------------------
Noone dies a virgin. Life screws us all... |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
.sln - обычный текстовый файл, Assembly здесь не поможет. При загруженном солюшене можно получить эту инфу используя классы из пространства имён EnvDTE, для этого нужно написать свой add-in для студии или макрос.
-------------------- ![]() |
|||
|
||||
| _Dream |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
ой а можно чуть подробнее я ничего этого не знаю
а то как прочел сразу захотелось regex'om воспользоваться --------------------
Noone dies a virgin. Life screws us all... |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Регэкспом тоже можно, и наверно - нужно
Схема такая: ищем первую строку типа Project(...) = "...". Можно, конечно, составить и паттерн посложнее, но глядя на примеры .sln-файлов лично я не нашёл граблей. Что до примера, вот он:
-------------------- ![]() |
|||
|
||||
| _Dream |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
О спасибо большое.
я правда имел в виду пример
ну если так проще то проще.. теперь следующий вопрос. я составил регулярное выражение сам но проблема в том что не могу запомнить имя проекта(чтоб выводить только его) прочитал что надо использовать круглые скобки но не получается. Ваш пример работает но только в случае если проект 1 в солюшене а их может быть много --------------------
Noone dies a virgin. Life screws us all... |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 7 Всего: 93 |
_Dream,
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| _Dream |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
блин
спасибо большое все проще чем я думал. пошел учить матчасть.. --------------------
Noone dies a virgin. Life screws us all... |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Именованные круглые скобки задаются так: (?<имя_группы>регэксп_для_захвата), такие скобки можно получать из GroupsCollection по имени.
См. пример archimed7592 -------------------- ![]() |
|||
|
||||
| _Dream |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 4.11.2006 Где: Там Репутация: нет Всего: нет |
всем привет. еще такой вопрос.. я думал что понял эти выражения как оказалось не совсем..
можно подробно что написано в этой строке? "Project\(.*?\)(\s+)=(\s+)""(?<projname>.*?)""" как я понимаю это так ищем строку в начале которй будет слово Project потом символ '(' потом 0 или 1 символ (кроме символа конца строки - интересно почему только 1??) потом символ ')' Далее от 1го до бесконечности непробелов потом знак '=' Далее от 1го до бесконечности непробелов. после него почему то вынесенный в "" то что мы запоминаем в группу(а запоминаем мы 0 или 1 символ?) заранее спасибо --------------------
Noone dies a virgin. Life screws us all... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |