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

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

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

Оставить только то что после разделителя (знака = ) - C++

27.02.2014, 21:52. Просмотров 376. Ответов 5
Метки нет (Все метки)

Здравствуйте, есть файл с кучей мусора и небольшими крупицами нужной информации, которая находится после знака = и начинается обязательно на число пример:
Кликните здесь для просмотра всего текста
IdMerchant=532541837
CARD_TYPE=CB
numCarte=4970402011238561
EXPIRATION_MONTH=8
EXPIRATION_YEAR=2015
codeSecurite=912
birthday=
LASTNAME=MALARD
FIRSTNAME=PIERRE
EMAIL=pierre.malard2@wanadoo.fr
ADDR_STREET=
ADDR_ZIPCODE=
ADDR_CITY=
ADDR_PHONE=
submit=

https://tpeweb.paybox.com/threedsecure/mpi_emt
Referer: https://tpeweb.paybox.com/cgi/RemoteMPI.cgi
User input: psgilletreportos822@hotmail.combanan...hotmail.comjXHMorMT3727261316bananas91psgbananas91psgTravancaArnaud91080courcouronnes4975926589627669715Trtavanca
POST data:

_mpi_merchantid=532541837
_mpi_amount=1300
_mpi_merchantref=1000002693420
_mpi_merchantdesc=Marchandises%2C Services
_mpi_currency=978
_mpi_ccnumber=4975926589627669
_mpi_ccexpdate=0615
_mpi_cvccvvcode=715
_mpi_device_category=0
_mpi_brand=VISA Prod Brand SG
IdTransMPI=1000002693420

http://36254.xml.blulocal.com/track
Referer: http://36254.xml.blulocal.com/click?...FWnPFc3fPZYbWA
User input:
POST data:

k=uACTRLAGRVGwZ5RGl31jw6vjeLtN3EFWnPFc3fPZYbWA
s=1389421925138155
js=1
hs=7
pw=1260
ph=982
pl=8
pt=30
ppl=nil
ppt=nil
sw=1280
sh=1024
ef=0
wf=0
wb=0

https://na.gcsip.com/orb/orb;jsessio...D32C4F57D7F617
Referer: https://na.gcsip.com/orb/orb?ACTION=...H7sEiZvssQc%3D
User input: buy fifa coinsaarron leenonnnonbeBEastfcAST FCTSPURSspurs3 dayscaroline wait ecarolinewaite@btinternet.com07715 8037820771580378245431341058257824672caroline waitecarolinewaite@btinternet.com.com077158038782Mama dou Sakhocarolinewaite@btinternet.com07715803782Mamoado SakSuou Sackhead achokhobeBEASTFC FCCeLiverpool45431310582578245672
POST data:

ACTION=DO_CONTINUE
PAYMENTPRODUCTID=1
REF=000000640800013512560000100001
CREDITCARDNUMBER=4543131058257824
CREDITCARDNUMBER_OBFUSCATED=
CREDITCARDNUMBER_CLEAR=
EXPIRYDATE_MM=06
EXPIRYDATE_YY=16
EXPIRYDATE=0616
CVV=672
CVV_OBFUSCATED=
CVV_CLEAR=
CARD_NUMBER=4975766407699502
CARD_VAL_MONTH=06
CARD_VAL_YEAR=16
CVV_KEY=197
USER=669819@032712587800063.140113
MERCHANT_ID=032712587800063
MERCHANT_COUNTRY=fr
CARD_TYPE=VISA
CARD_MODE=CARTE
CUSTOMER_COUNTRY=
PAIEMENT=VALIDER


Должно получится что-то вроде:
Кликните здесь для просмотра всего текста
4970402011238561
8
2015
912

4975926589627669
0615
715


4543131058257824
06
16
0616
672


Я так и не смог найти информации по работе с разделителями
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 21:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оставить только то что после разделителя (знака = ) (C++):

2 знака после запятой и не только - C++
Здравствуйте форумчане 1)есть вопросик по поводу приведения результата выполнения кода в божеский вид... нужен результат типа x=2.50 F=...

Функция stod() выводит только 4 знака после запятой - C++
Как сделать так, чтобы функция stod() при преобразовании строки string в число double не ограничивала количество знаков после запятой...

Оставить после знаков препинания только один пробел - C++
Прошу помочь с одной программой: #include "stdafx.h" #include <iostream> #include <fstream> #include <iomanip> #include <stdio.h>...

Вывод в консоль чисел с плавающей точкой: как сделать, чтобы после запятой было только два знака? - C++
как сделать что бы после запятой было только два знака? спасибо

Почему после 51-го знака после запятой выводятся одни нули? - C++
В продолжение темы: тот же код, только с увеличенным количеством знаков после запятой: #include <iostream> #include <windows.h>...

Сократить задачу, оставить только самое главное - C++
Сократить задачу, оставить только самое главное. Очень нужно помочь, защищать придётся её Исходный код: /*#include <iostream> ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.02.2014, 22:31 #2
Цитата Сообщение от Atropos Посмотреть сообщение
Я так и не смог найти информации по работе с разделителями
Класс string знаете?

Добавлено через 2 минуты
Цитата Сообщение от Atropos Посмотреть сообщение
IdMerchant=532541837
Цитата Сообщение от Atropos Посмотреть сообщение
_mpi_merchantid=532541837
Цитата Сообщение от Atropos Посмотреть сообщение
_mpi_amount=1300
и т.д.
Почему эти строки не входят в искомые?
DiffEreD
1430 / 767 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
27.02.2014, 22:51 #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Atropos, есть одно решение (код содержит: boost, C++11):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
#include <fstream>
#include <boost/algorithm/string/regex.hpp>
 
int main()
{
   std::ifstream ifs("file.txt");
   if (!ifs.is_open())
   {
      std::cerr << "Error opening file!\n";
      return 1;
   }
   std::string text {std::istreambuf_iterator<char>(ifs), std::istreambuf_iterator<char>()};
   std::vector<std::string> result;
   boost::regex reg("(?<=\\w=)(\\d+)");
   boost::algorithm::find_all_regex(result, text, reg);
 
   for (const auto& i : result) std::cout << i << "\n";
 
   return 0;
}
igorrr37
1646 / 1274 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
27.02.2014, 22:56 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <string>
#include <fstream>
#include <cctype>
 
int main ()
{
    std::ifstream ifs("in.txt");
    if(ifs.is_open())
    {
        std::string str;
        std::string::size_type ind;
        while(ifs >> str)
        {
            try
            {
                if(((ind = str.find('=')) != std::string::npos) && isdigit(str.at(ind + 1)))
                {
                    std::cout << str.substr(ind + 1) << '\n';
                }
            }
            catch(std::out_of_range)
            {
 
            }
        }
        ifs.close();
    }
    else
        std::cerr << "Unable to open input file\n";
    return 0;
}
Atropos
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 10
28.02.2014, 05:38  [ТС] #5
Эти строчки не входят в искомые так-как первые 16 цифр это номер кредитной карты, затем идет дата окончания ее действия и три последних это секретный код

Всем спасибо за помощь
Tulosba
28.02.2014, 11:09     Оставить только то что после разделителя (знака = )
  #6

Не по теме:

Кто-нибудь уже попробовал что-то оформить по данным этих карт? Отпишитесь

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2014, 11:09
Привет! Вот еще темы с ответами:

Обрезание массива: оставить только положительные числа - C++
Здравствуйте, уважаемые пользователи форума. Недавно начал изучать программирование, и при решении одной задачи возникла проблема: есть...

Оставить в числе только первые вхождения каждой цифры - C++
23) Дано длинное целое неотрицательное число, шестнадцатеричное представление которого не содержит ни одного нуля. Просматривая число,...

Оставить в слове только первые вхождения каждой буквы - C++
Задав с клавиатуры последовательность символов, реализовать обработку ее.Исходные данные задать самостоятельно. оставить в слове...

Оставить в списке только первые вхождения одинаковых элементов - C++
В составе программы описать функцию, которая оставляет в списке только первые вхождения одинаковых элементов. Добавлено через 10 минут...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.02.2014, 11:09
Ответ Создать тему
Опции темы

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