|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #1 : 14-01-2010 06:56 » |
|
а что такое String^ ?
|
|
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #2 : 14-01-2010 06:57 » |
|
Сплошь и рядом используеться в MVS2008. System::String
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #3 : 14-01-2010 06:59 » |
|
шарп что ли ? ) Разделом ошибся ?
|
|
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #4 : 14-01-2010 06:59 » |
|
Язык: C++ Microsoft Visual Studio 2008 Version 9.0.30729.1 SP
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 14-01-2010 07:01 » |
|
нет в C++ оператора ^ , применимого к типу данных
|
|
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #6 : 14-01-2010 07:06 » |
|
Visual C++ Express Edition. Создал CLR -> CLR Console Application. Автоматически вставило код: int main(array<System::String ^> ^args) { ... }
Так это что, C#? Если да, то я не знал и потому тему в С++ кинул. В любом случае, я не могу конвертировать char* в String^.
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #7 : 14-01-2010 07:11 » |
|
Inkognito, да с++ НО C++.NET странная вещь
|
|
« Последнее редактирование: 14-01-2010 12:40 от Sel »
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #8 : 14-01-2010 08:50 » |
|
Inkognito, а компилятор что пише то ?
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #9 : 14-01-2010 09:13 » |
|
Правильно, класс String работает с юникодными символами (о чём можно было прочитать в MSDN, кстати ). Соответственно, в лучшем случае, его можно проинициализировать из wchar_t*: wchar_t * src = L"blahblahblah"; String^ str = gcnew String(src);
или как-то так. Но в целом, я бы не советовал использовать .NET в с++ только ради регэкспа. Уж лучше тогда boost подключить и использовать regex оттуда.
|
|
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #10 : 14-01-2010 12:02 » |
|
Я, кстати, находил упоминание о boost. Заходил на сайт http://www.boost.org/, у вкладку Download. А там архивы от 10 до 30 и более Мб. Я подумал, что что-то не то нашел. Сейчас качаю 1.32.0. ... Попробую. ... А сколько времени потрачено зря, ужос.
|
|
|
Записан
|
|
|
|
|
darkelf
Молодой специалист
Offline
|
|
« Ответ #12 : 14-01-2010 12:26 » |
|
понимать, как: #include <boost/regex.hpp>
как я понял из http://blog.alno.name/2008/12/using-boost-xpressive/ libboost_regex это дополнительная библиотека, возможно Вы либо не собрали её, когда собирали boost, либо, если Вы взяли уже кем-то собранный, то соответственно они её не собрали. Попробуйте Boost::Xpressive как я понимаю, она не требует дополнительных библиотек.
|
|
« Последнее редактирование: 14-01-2010 12:32 от darkelf »
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #13 : 14-01-2010 12:30 » |
|
Ошибка всё-равно осталась
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #14 : 14-01-2010 12:31 » |
|
Inkognito, Поискал о libboost_regex-vc6-sgd-1_32.lib на google
на винте поищи ) А потом пропиши путь для линкера
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #15 : 14-01-2010 12:31 » |
|
< это всего лишь знаки "больше"-"меньше" ("<>") криво сверстались. ЗЫ. Надо в пути для инклудов проекта добавить путь к бусту.
|
|
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #16 : 14-01-2010 12:33 » |
|
на винте поищи ) А потом пропиши путь для линкера
Искал - нет там такого. И где скачивал - тоже нет. Дополнение: в папке Boost 1.32.0 (которую я скачал) lib-файлов нет вообще.
|
|
« Последнее редактирование: 14-01-2010 12:36 от Inkognito »
|
Записан
|
|
|
|
Вад
|
|
« Ответ #17 : 14-01-2010 12:37 » |
|
lib-ы там и не должно быть - её надо построить, или качать специальный инсталлер уже с бинарниками, а не основной архив буста. Это же всё в Getting Started написано должно быть.
PS. Кстати, а чего версия-то такая старая? Уже релиз 1.41 лежит
|
|
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #18 : 14-01-2010 12:39 » |
|
Getting Started
Первый раз вижу.
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #19 : 14-01-2010 12:41 » |
|
|
|
« Последнее редактирование: 14-01-2010 12:43 от Вад »
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #20 : 14-01-2010 12:47 » |
|
Кстати, а чего версия-то такая старая? Уже релиз 1.41 лежит
Мне не нужен новый релиз, мне нужно хоть как-то с регекспами работать
|
|
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #21 : 18-01-2010 05:55 » |
|
Надо в пути для инклудов проекта добавить путь к бусту.
Скачал инсталятор на boost 1.40.0. Записал его в C:\Program Files\boost\. Прописал полный путь: #include <C:/Program Files/boost/boost_1_40/boost/regex.h>. Но либ всё-равно не находит. В папке C:\Program Files\boost\ никаких дополнительных ехе-файлов/инсталяторов нету, собственно как и либ-файлов. Надо как-то установить буст через вижуал студио? Или как получить этот либ? Как вы проделывали эту установку?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #22 : 18-01-2010 06:48 » |
|
Пропиши в проекте путь "C:\Program Files\" и используй как <boost/regex.h>
Кстати, знаешь разницу между <> и "" в #include? Зачем полный путь пишешь в <>?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dr.Yevhenius
|
|
« Ответ #23 : 18-01-2010 07:08 » |
|
Кстати, знаешь разницу между <> и "" в #include? Зачем полный путь пишешь в <>?
"" - это когда файл искать в папке проекта, а <> - в папке Include. А можно немного точнее... Прописать в Project->Settings->Resources?
|
|
« Последнее редактирование: 18-01-2010 07:10 от Inkognito »
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #24 : 19-01-2010 13:47 » |
|
Такое впечатление, вроде я попросил программу за меня на халяву написать, или никто boost'ом не польззовался. Но ладно, программу написал без использования boost и, собственно, регулярных выражений. А с такой помощью легче написать свой regex.h. Тем более, в boost, чтоб использовать, всего-лишь, регулярные выражения, нужно штук 100 h-файлов - зачем делять такую сложную структуру, пока не разобрался, но первые впечатления не очень. P.S. В дальнейших ответах не нуждаюсь. P.S.S. В будущем обязательно напишу решение этой проблеммы.
|
|
|
Записан
|
|
|
|
Вад
|
|
« Ответ #25 : 19-01-2010 14:34 » |
|
Просто проблема непонятна. Есть же инструкция, как всё это собрать и подключить. Ты по ней делал? На каком пункте проблема?
|
|
« Последнее редактирование: 19-01-2010 14:36 от Вад »
|
Записан
|
|
|
|
Dr.Yevhenius
|
|
« Ответ #26 : 19-01-2010 20:09 » |
|
Забей...
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #27 : 19-01-2010 20:15 » |
|
Inkognito, зря ты так и теперь не понятно, У тебя получилось или нет. Может оно тебе оказалось не нужным. Может ты посчитал это сложным. Может...
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dr.Yevhenius
|
|
« Ответ #28 : 19-01-2010 20:40 » |
|
Inkognito, зря ты так
Всё-равно у каждого свое мнение; каждый будет считать, что прав, и всё останется, как прежде. Но может это и к лучшему? Но это уже вода. и теперь не понятно, У тебя получилось или нет.
Как я уже сказал, я бросил установку boost и реализовал программу без него. Может оно тебе оказалось не нужным.
Нужным... Было... Задача упростилась бы раза в 1,5-2. Может...
Всё возможно... Может ты посчитал это сложным.
Программа, вообще, сложная, но реализуемая. P.S. Вад, обидеть не хотел, если так получилось.
|
|
« Последнее редактирование: 19-01-2010 20:46 от Inkognito »
|
Записан
|
|
|
|
Вад
|
|
« Ответ #29 : 19-01-2010 21:01 » |
|
Inkognito, всё равно не понимаю. По той ссылке, которую я тебе дал, есть вся информация. Там описано, как сбилдить библиотеки буста. На системе с установленной VS это всего-то, запустить 1 bat-файл, а потом запустить то, что сбилдит этот файл. И подождать, пока закончит (процесс, к слову, небыстрый) Там описан пример приложения, которое юзает буст. Включая настройки проекта, и где эти настройки в VS находятся. Там даже есть пример с использованием regex и детальное описание, как и что линковать.
"Если ничто другое не помогает - прочтите, наконец, инструкцию" (народная мудрость) Ничего личного.
|
|
« Последнее редактирование: 19-01-2010 21:07 от Вад »
|
Записан
|
|
|
|
WDMclient
Гость
|
|
« Ответ #30 : 03-03-2010 14:13 » |
|
Такое впечатление, вроде я попросил программу за меня на халяву написать, или никто boost'ом не польззовался. Но ладно, программу написал без использования boost и, собственно, регулярных выражений. А с такой помощью легче написать свой regex.h. Тем более, в boost, чтоб использовать, всего-лишь, регулярные выражения, нужно штук 100 h-файлов - зачем делять такую сложную структуру, пока не разобрался, но первые впечатления не очень. P.S. В дальнейших ответах не нуждаюсь. P.S.S. В будущем обязательно напишу решение этой проблеммы. Регулярные выражения в boost делают это как это делает чемпион по обработке текста язык Perl. Там даже опция есть такая "format_perl" (она же и по умолчанию) Так что если работал в Perl с регулярами то boost на 98% тоже самое. Конечно если ты не знаком с Perl то придется долго шелушить мануалы и тыкать пальцем. в общем произвело на меня сильна благоприятное впечатление , и возвращаться ко всяким string отпало , плюс использование BOOST сильно повышает читабельность кода. А да , при компайле либов попотел немного , пока не нашел варинта компиляции такой bjam variant=release threading=multi link=static runtime-link=static В разделе libc есть каталоги build (для каждой либы) туда нужно скопировать bjam.exe и выполнить выше означеный строк. Все либы не надо билдить , а только те которые потребует компилятор по ходу. Видно Inkognito ты не разобрался раз не смог отписать вовремя. Ты пишешь что "В дальнейших ответах не нуждаюсь" - это потому что ты неопытный б...
|
|
« Последнее редактирование: 03-03-2010 14:23 от WDMclient »
|
Записан
|
|
|
|
yudjin
|
|
« Ответ #31 : 14-07-2010 13:18 » |
|
Добрый день. Пытаюсь осваивать регулярные выражения. Написал такое выражение, находящее домен в строке: boost::regex FindIP_exp(".*http://(\\w+[^/]*)"); Например, если будет строка " ывфыва http://images.amazon.com/imagesыва " - выводит images.amazon.com Но вот беда, если в строке будет два значения, удовлетворяющих шаблону, то берется последнее. Как указать, что выражение может встречаться неограниченное число раз, и каждое надо запомнить? И еще - правильно ли я понимаю написанный код: .* - любые символы, предшевствующие http:// http:// ( - сохраняет \\w+ - последовательность любых символов, [^/] - пока не встретится / * - ЛЮБЫХ ) Вот... туговато пока с регэкспами
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #32 : 14-07-2010 15:14 » |
|
И еще - правильно ли я понимаю написанный код:
.* - любые символы, предшевствующие http:// http:// ( - сохраняет \\w+ - последовательность любых символов, [^/] - пока не встретится / * - ЛЮБЫХ )
Вот... туговато пока с регэкспами
( - группировка. \\w+ - символы класса [A-Za-z0-9_] в количестве 1+. [^/]* - символы класса "все символы, исключая слеш", в количестве 0+. ) Группировка зачастую используется для "захвата" последовательности символов, соотвествующих шаблону внутри группы. Шаблон некорректный, т.к. в именах доменов встречается минус, но не встречается подчеркивание. Я бы сделал такой: "http://([-a-zA-Z0-9]+(?:\\.[-a-zA-Z0-9]+)+)/". Как управлять захватом - читай описание API.
|
|
« Последнее редактирование: 15-07-2010 05:28 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|