|
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
|
|
написание программы для поиска и замены части строк в двух текстовых файлах с разным синтаксисом04.08.2011, 13:33. Показов 2769. Ответов 18
Метки нет (Все метки)
Здравствуйте! Последний раз программировал около 5 лет назад, на первых курсах колледжа. Забыл все полностью. Сейчас возникла необходимость опять взяться за это дело
Поэтому у меня пара вопросов, сначала первый, собственно он представляет собой поставленную мне задачу. Опишу все подробно, чтобы всем было понятно. Итак, есть два текстовых файла, представляющие собой отчеты по биллингу от двух разных источников, (один отчет от софтины, которая стоит на предприятии, а второй отчет предоставляет провайдер каждый месяц). Отчеты в *txt, данные в них одинаковые, но так как софт разный, (на предприятии и у провайдера) синтаксис отличается. Далее буду называть их отчет A и отчет B Текст в отчетах разбит на строки, и выглядит примерно так: дата/время/длительность/номер с которого был совершен звонок/номер на который был совершен звонок/стоимость звонка/ суть в том, поле /номер с которого был совершен звонок/ у отчета А одно, а у отчета В - другое, то есть, у отчета А в этом поле различные телефонные номера, а у отчета В один и тот же одинаковый номер. Необходимо произвести анализ обоих отчетов по строкам, по некоторым параметрам, и заменить у отчета В тот самый одинаковый номер на корректные номера из отчета А. Я представляю это себе примерно так: Программой анализируется содержимое отчета А и В, затем из первой строки отчета А берутся следующие значения: дата/время/длительность/номер на который был совершен звонок/, затем в отчете В ищется строка с идентичными значениями, затем в этой строке поле /номер с которого был совершен звонок/ заменяется на это же поле из отчета А т.е в отчете А у нас первая строка выглядит так: дата/время/длительность вызова/внутренний номер (1111)/номер на который был совершен звонок (2222222)/ В отчете В у нас строка немного другая: дата/время/длительность вызова/единый для всех внешний номер (3333333)/номер на который был совершен звонок(2222222)/стоимость звонка/ Программа должна сделать третий отчет, в котором будет строка вида дата/время/длительность вызова/внутренний номер(1111)/номер на который был совершен звонок(2222222)/стоимость звонка/ Это может показаться глупым, но прикол в том, что у провайдера естественно есть своя тарификация звонков, а биллинг который стоит на предприятии вообще стоимость считать не умеет. А пров предоставляет отчет в которым невозможно отследить с какого номера был совершен звонок, обратите внимание, в отчете прова внутренние номера не видны, номер в отчете прова единый для всех внутренних. Поэтому в случае чего непонятно, какому сотруднику предъявлять счет на связь с какой нибудь карагандой. Ради этого этот ад и был затеян Надеюсь я понятно объяснил суть задачи, поэтому у меня второй вопрос. Реально ли осилить написание такой программы в течение 2х недель, или можно вешаться ? Начинаю с нуля, в голове со времен колледжа по программированию у меня не отложилось ничего, никогда не собирался этим заниматься, не мое это. Но сейчас нужно что то предпринимать. Время идет.Господа, подскажить мне пожалуйста с чего сейчас начать, про что конкретно почитать, от чего отталкиваться ? Может быть что то и получится в итоге
0
|
|
| 04.08.2011, 13:33 | |
|
Ответы с готовыми решениями:
18
Изменить текст в одном txt-файле с использованием двух других для поиска и замены строк
|
|
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
|
|
| 04.08.2011, 15:08 [ТС] | |
|
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
| 04.08.2011, 15:25 | |
|
Что-то мне подсказывает, что всё это можно сделать средствами Excel'я...
0
|
|
| 04.08.2011, 15:27 | |
|
Не по теме: Кому бы эту инфу толкнуть...
0
|
|
|
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
|
|
| 04.08.2011, 15:28 [ТС] | |
|
-=ЮрА=-, конечно, как тебе будет угодно
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||||||
| 04.08.2011, 15:37 | ||||||
|
Всё элементарно (даже за две недели сможешь сделать.) )!
Выгружаешь инфу в текстовые файлы с удобным разделителем (пробел не подходит, т.к. есть строки с пробелом). Для упрощения задачи можно выгружать не все столбцы. НАпример, очевидно, что там везде ВЫМПЕЛКОМ в столбце TR_CMP. Но это просто для уменьшения объёма. Для идентификации звонков используешь трио дата/время/длительность вызова. т.е. создаёшь структуру вида
Создаёшь словарь std::map<CallID, CallData> calls; Построчно считываешь первый файл, заполняя поля структур CallID и CallData и занося их в словарь. Считываешь второй файл, заполняя структуру типа CallID, находишь в словаре связанную с ней информацию о звонке и дополняешь оставшиеся поля. Сохраняешь данные из словаря в третий файл. Я реализацию писать не буду, это скучно.)
0
|
||||||
|
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
|
|
| 04.08.2011, 15:52 [ТС] | |
|
Deviaphan, большое спасибо, правда -=ЮрА=- возможно что нибудь придумает, вообще мне стыдно кого то просить о готовом решении, но если он поможет я буду только рад
![]() а так буду разбираться сам конечно, уже есть правильное направление, почитаю книги, погуглю, глядишь,сваяю что нибудь )
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
| 04.08.2011, 15:55 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
|
||
| 04.08.2011, 16:04 [ТС] | ||
|
Этот номер нужно заменить на соответствующий номер из отчета А, и сформировать третий отчет, с замененными номерами. т.е берем отчет А, выдираем из него местный номер из столбца Extension и заменяем им номер 703-11-60 в отчете В, в столбце FROM.
0
|
||
|
|
||
| 04.08.2011, 16:21 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
|
|
| 04.08.2011, 16:36 [ТС] | |
|
Понял, тогда можно ли каким то образом откинуть семерку и код города ? Или, к примеру, сравнивать только по последним семи цифрам ? тогда по идее все должно получиться, по крайней мере у меня по номеру 631 84 34 поиск прошел по одному и по другому отчету. Правда пришлось отбросить 7 495.
0
|
|
|
0 / 0 / 0
Регистрация: 04.08.2011
Сообщений: 7
|
|
| 04.08.2011, 19:52 [ТС] | |
|
спасибо! спешить пока некуда, будет замечательно если все получится
0
|
|
| 04.08.2011, 19:52 | |
|
Помогаю со студенческими работами здесь
19
Дописи строк в текстовых файлах Программы для гибкого поиска и замены текста по шаблону Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|