Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 1557
∙ повысить рейтинг »
_Ayl_
Статус: Студент
Рейтинг: 1430
∙ повысить рейтинг »
Micren
Статус: Специалист
Рейтинг: 1394
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / C/C++

Номер выпуска:1460
Дата выхода:29.12.2009, 22:30
Администратор рассылки:Dr_Andrew, Старший модератор
Подписчиков / экспертов:678 / 182
Вопросов / ответов:1 / 1
IRC-канал по теме:#C

Вопрос № 175589: Здраствуйте уважаемые эксперты. Пишу на с++ в codebloks возникла задача распарсить текст использую библиотеку pcre. Вот фаил с текстом его необходими распарсить и вытащить эту...



Вопрос № 175589:

Здраствуйте уважаемые эксперты.
Пишу на с++ в codebloks возникла задача распарсить текст использую библиотеку pcre.
Вот фаил с текстом его необходими распарсить и вытащить эту строку :
http://fileshare245.depositfiles.com/auth-1261655739bede5d845b7b1f335a0176-95.158.205.93-969473376-34511674-guest/FS245-8/x_zone.rar

Вот как пишу:

Код:

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string.h>
#include <pcre.h>

using namespace std;
int main()
{
fstream file_buff;
file_buff.open("file",ios::in );
string buffer;
file_buff >> ;buffer;

char regx[] = "\w+.\/\/\w+\d+\.\w+\.\w+\/\w+-.+\.\w";

pcre *re;
int options = 0;
const char *error;
int erroffset;
re = pcre_compile (regx, options, &error, &erroffset, NULL);

if (!re)
{
cout << "Failed\n";
}
else
{
int count = 0;
int ovector[30];
cout << "Парсинг... " << endl;
count = pcre_exec (re, NULL, buffer.c_str(),buffer.length(), 0, 0, ovector, 30);
if (count< 0)
{
switch(count)
{
case PCRE_ERROR_NOMATCH:
cout << "Нет совпадений" << endl;
return -1;
default:
cou t << "Ошибка : " <<count <<endl;
return -1;
}
free(re); /* Release memory used for the compiled pattern */
return 1;
}
else
{
for (int c = 0; c < 2 * count; c += 2)
{
if (ovector[c] < 0)
{
cout << "\n";
}
else
{
cout << ovector[c] << "/" << ovector[c + 1] << "\n";
}
}
}
}
return 0;
}


Постоянно выдает: нет совпадений
Может что-то не правильно пишу или выражение составлено н е правильно?
Как вытащить строку???
OS ubuntu 9.10 x64, codebloks.

Отправлен: 24.12.2009, 16:37
Вопрос задал: Akum2008, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает vladisslav, 5-й класс :
Здравствуйте, Akum2008.
поправил первые попавшиеся на глаза ошибки. Возможно есть еще, но вроде работает.
Код:
$ g++ -lpcre -o t t.cpp
$ ./t
Парсинг...
9782/9914
http://fileshare245.depositfiles.com/auth-1261655739bede5d845b7b1f335a0176-95.158.205.93-969473376-34511674-guest/FS245-8/x_zone.rar

Приложение:

Ответ отправил: vladisslav, 5-й класс
Ответ отправлен: 24.12.2009, 17:42

Оценка ответа: 5
Комментарий к оценке:
Спасибо разобрался!

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 258104 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.13 от 28.12.2009

    В избранное