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

написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Ra1nbowman
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
04.08.2011, 13:33     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #1
Здравствуйте! Последний раз программировал около 5 лет назад, на первых курсах колледжа. Забыл все полностью. Сейчас возникла необходимость опять взяться за это дело

Поэтому у меня пара вопросов, сначала первый, собственно он представляет собой поставленную мне задачу. Опишу все подробно, чтобы всем было понятно.

Итак, есть два текстовых файла, представляющие собой отчеты по биллингу от двух разных источников, (один отчет от софтины, которая стоит на предприятии, а второй отчет предоставляет провайдер каждый месяц). Отчеты в *txt, данные в них одинаковые, но так как софт разный, (на предприятии и у провайдера) синтаксис отличается. Далее буду называть их отчет A и отчет B

Текст в отчетах разбит на строки, и выглядит примерно так:

дата/время/длительность/номер с которого был совершен звонок/номер на который был совершен звонок/стоимость звонка/


суть в том, поле /номер с которого был совершен звонок/ у отчета А одно, а у отчета В - другое, то есть, у отчета А в этом поле различные телефонные номера, а у отчета В один и тот же одинаковый номер.

Необходимо произвести анализ обоих отчетов по строкам, по некоторым параметрам, и заменить у отчета В тот самый одинаковый номер на корректные номера из отчета А.

Я представляю это себе примерно так:

Программой анализируется содержимое отчета А и В, затем из первой строки отчета А берутся следующие значения:

дата/время/длительность/номер на который был совершен звонок/, затем в отчете В ищется строка с идентичными значениями, затем в этой строке поле
/номер с которого был совершен звонок/ заменяется на это же поле из отчета А

т.е в отчете А у нас первая строка выглядит так:

дата/время/длительность вызова/внутренний номер (1111)/номер на который был совершен звонок (2222222)/

В отчете В у нас строка немного другая:

дата/время/длительность вызова/единый для всех внешний номер (3333333)/номер на который был совершен звонок(2222222)/стоимость звонка/


Программа должна сделать третий отчет, в котором будет строка вида

дата/время/длительность вызова/внутренний номер(1111)/номер на который был совершен звонок(2222222)/стоимость звонка/

Это может показаться глупым, но прикол в том, что у провайдера естественно есть своя тарификация звонков, а биллинг который стоит на предприятии вообще стоимость считать не умеет. А пров предоставляет отчет в которым невозможно отследить с какого номера был совершен звонок, обратите внимание, в отчете прова внутренние номера не видны, номер в отчете прова единый для всех внутренних. Поэтому в случае чего непонятно, какому сотруднику предъявлять счет на связь с какой нибудь карагандой. Ради этого этот ад и был затеян

Надеюсь я понятно объяснил суть задачи, поэтому у меня второй вопрос. Реально ли осилить написание такой программы в течение 2х недель, или можно вешаться ? Начинаю с нуля, в голове со времен колледжа по программированию у меня не отложилось ничего, никогда не собирался этим заниматься, не мое это. Но сейчас нужно что то предпринимать. Время идет.

Господа, подскажить мне пожалуйста с чего сейчас начать, про что конкретно почитать, от чего отталкиваться ? Может быть что то и получится в итоге
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2011, 13:33     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом
Посмотрите здесь:

C++ Переписать main программы чтения текстовых строк
C++ Написать программу, выводящую на экран строки, которые одновременно содержатся в двух заданных текстовых файлах
строки, которые одновременно содержатся в двух заданных текстовых файлах C++
Нужно написать прогу которая создаст в двух текстовых файлах А и В порядок числ до 17 C++
Строка: Добавить в строковый класс функцию, которая создает строку, содержащую пересечение двух строк, то есть общие символы для двух строк. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
04.08.2011, 14:16     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #2
Прикрепи для работы файлы отчётов А и В, тогда могу помочь...
Ra1nbowman
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
04.08.2011, 15:08  [ТС]     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #3
ошибся, отчеты в *xls

ссылка для скачивания:

http://ifolder.ru/25032974
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.08.2011, 15:25     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #4
Что-то мне подсказывает, что всё это можно сделать средствами Excel'я...
-=ЮрА=-
Заблокирован
Автор FAQ
04.08.2011, 15:25     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #5
Ra1nbowman, я буду преобразовывать всё в тхт - гемор с экселем мне не нужен. В тхт тебя устроит?
Deviaphan
04.08.2011, 15:27
  #6

Не по теме:

Кому бы эту инфу толкнуть...

Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.08.2011, 15:28     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #7
Ra1nbowman, ссылки на файлообменники запрещены правилами форума

ошибся, отчеты в *xls
можно вешатся, гораздо проще на шарпе написать
Ra1nbowman
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
04.08.2011, 15:28  [ТС]     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #8
-=ЮрА=-, конечно, как тебе будет угодно
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
04.08.2011, 15:33     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #9
Цитата Сообщение от Maxwe11 Посмотреть сообщение
можно вешатся, гораздо проще на шарпе написать
Гораздо проще на питоне, перле и т.д., по-моему они как раз для этого и задумывались
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.08.2011, 15:37     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #10
Всё элементарно (даже за две недели сможешь сделать.) )!
Выгружаешь инфу в текстовые файлы с удобным разделителем (пробел не подходит, т.к. есть строки с пробелом). Для упрощения задачи можно выгружать не все столбцы. НАпример, очевидно, что там везде ВЫМПЕЛКОМ в столбце TR_CMP. Но это просто для уменьшения объёма.

Для идентификации звонков используешь трио дата/время/длительность вызова. т.е. создаёшь структуру вида
C++
1
2
3
4
5
6
dtruct CallID
{
      DWORD date;
      DWORD time;
      DWORD call;
};
И ещё одну структуру CallData, содержащую все остальные поля из обоих файлов.

Создаёшь словарь std::map<CallID, CallData> calls;
Построчно считываешь первый файл, заполняя поля структур CallID и CallData и занося их в словарь.

Считываешь второй файл, заполняя структуру типа CallID, находишь в словаре связанную с ней информацию о звонке и дополняешь оставшиеся поля.

Сохраняешь данные из словаря в третий файл.

Я реализацию писать не буду, это скучно.)
Ra1nbowman
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
04.08.2011, 15:52  [ТС]     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #11
Deviaphan, большое спасибо, правда -=ЮрА=- возможно что нибудь придумает, вообще мне стыдно кого то просить о готовом решении, но если он поможет я буду только рад

а так буду разбираться сам конечно, уже есть правильное направление, почитаю книги, погуглю, глядишь,сваяю что нибудь )
-=ЮрА=-
Заблокирован
Автор FAQ
04.08.2011, 15:52     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #12
Ra1nbowman, между колонками cNumber из отчёта А и FROM TO в отчёте В нет ни одного совпадающего номера, ты уверен что инфа в этих файлах об одних и тех же звонках?
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.08.2011, 15:53     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #13
Цитата Сообщение от fasked Посмотреть сообщение
Гораздо проще на питоне, перле и т.д., по-моему они как раз для этого и задумывались
я имел ввиду не саму обработку текста, а открытие и чтение *.xls файла, под это только .NET и заточен нормально
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.08.2011, 15:55     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #14
Цитата Сообщение от Maxwe11 Посмотреть сообщение
под это только .NET и заточен нормально
На PowerShell ещё можно...
Ra1nbowman
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
04.08.2011, 16:04  [ТС]     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #15
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Ra1nbowman, между колонками cNumber из отчёта А и FROM TO в отчёте В нет ни одного совпадающего номера, ты уверен что инфа в этих файлах об одних и тех же звонках?
Да, именно про это я и говорил, столбец FROM в отчете B имеет единый номер 703-11-60.

Этот номер нужно заменить на соответствующий номер из отчета А, и сформировать третий отчет, с замененными номерами.

т.е берем отчет А, выдираем из него местный номер из столбца Extension и заменяем им номер 703-11-60 в отчете В, в столбце FROM.
-=ЮрА=-
Заблокирован
Автор FAQ
04.08.2011, 16:21     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #16
Цитата Сообщение от Ra1nbowman Посмотреть сообщение
на соответствующий номер из отчета А
Для наглядности привожу пример поиска самого первого номера в колонке ТО отчёта В в отчёте А. Как видишь нет этого номера - каков алгоритм сопоставления номера, вот о чём я?
Миниатюры
написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом  
Ra1nbowman
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
04.08.2011, 16:36  [ТС]     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #17
Понял, тогда можно ли каким то образом откинуть семерку и код города ? Или, к примеру, сравнивать только по последним семи цифрам ? тогда по идее все должно получиться, по крайней мере у меня по номеру 631 84 34 поиск прошел по одному и по другому отчету. Правда пришлось отбросить 7 495.
-=ЮрА=-
Заблокирован
Автор FAQ
04.08.2011, 17:18     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #18
Цитата Сообщение от Ra1nbowman Посмотреть сообщение
Правда пришлось отбросить 7 495.
- тогда попробую, молниеносное выполнение не гаранирую, но делать берусь...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2011, 19:52     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом
Еще ссылки по теме:

C++ Совпадают ли элементы в двух текстовых файлах?
C++ Использование принципов ООП для поиска в файлах разного типа
C++ Программа для поиска введенного слова или фразы во всех файлах каталога

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

Или воспользуйтесь поиском по форуму:
Ra1nbowman
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
04.08.2011, 19:52  [ТС]     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом #19
спасибо! спешить пока некуда, будет замечательно если все получится
Yandex
Объявления
04.08.2011, 19:52     написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом
Ответ Создать тему
Опции темы

Текущее время: 10:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru