![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| h2o |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: 1 Всего: 1 |
Кто когда-нибудь видел детализацию счёта мобильного номера (МТС, Мегафон и т.д). Там идет HTML фаил!
Дак вот, хотелось бы сделать фильтрацию номеров в этом файлике, тоесть удалять из детализированного списка номера, тоесть звонки по работе, которые занесены в базу фильтра, и пересчитывать сумму, чтобы работа оплачивала звонки по работе, а я платил только за личные. Кто сталкивался - знает, как это мучительно сидеть и разбираться со звонками в конце месяца, вот я и подумал, а как автоматизировать процесс??? Даже не знаю, с чем лучше работать с HTML или TXT? Например в ТХТ:
и вот те звонки что по работе мне надо исключить, и пересчитать сумму ИТОГО. А исключаемые номера например в списке TStringList(или где лучше?) Ну вот, впрочем всё обьяснил, как можно такое сделать? ТОесть как искать в файле, либа в TStringList, в котором загружен нужный фаил??? Как удалить ненужную запись, и произвести расчёт, есть идеи? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Все очень просто файл загружается в мемо затем ищется слово "телефон " 7 символов после номер
дальше пропускаются две строки и данные читаются построчно до слова "итого." -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Обычный поиск регулярного выражения с выделением подстрок. Можно делать на каком-нибудь скрипте поддерживающем регулярные выражения.
А можно воспользоваться напрмер редактором EmEditor. Он имеет встроенную поддержку скриптовых языков + поддержку полных регулярных выражений. К нему есть руссификатор. А можно и на Delphi, используя библиотеку для работы с регулярными выражениями, например TRegExpr (поищи, адрес сайта не помню). Можно конечно и без регулярных выражений, как описал alexeis1, просто с регулярными выражениями это проще, быстрее, а главное более универсально. При любых изменениях формата входного файла в большинстве случаев будет достаточно лишь изменить одно-два выражения. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| h2o |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: 1 Всего: 1 |
alexeis1 ну как-то проще в TSTRINGLIST всё загрузить, но вот как искать, я даже понятия не имею!
Петрович TRegExpr немогу найти сам компонент, тока его описания. ОФФ сайт закрыт! --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
h2o компонент есть в torry.net
Добавлено @ 17:27 для поиска строки в строке есть функция pos(substr, mainstr) = первое появление в mainstr.И так построчно. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| h2o |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: 1 Всего: 1 |
Нашёл компонент! Эх, теперь бы разобратьсяю...
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Зачем пользоваться сторонними компонентами?
Все очень просто через TStringGrid прекрасно сделать. -------------------- Ll 2 |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Не согласен
Отображение это уже вторя задача причем более простая... -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| h2o |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: 1 Всего: 1 |
alexeis1 в TRegExpr я не понял что конкрутно для меня надо... ну может разберусь ещё
...а это к чему относится.. к TRegExpr? --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
h2o нет я имел ввиду как искать "ручками" а с TRegExpr я тоже не умею работать и подробного описания ни где нет
Это сообщение отредактировал(а) alexeis1 - 17.1.2006, 13:23 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| h2o |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: 1 Всего: 1 |
Romikgy а как с ним работать? там не написано! есть примеры поиска текста где, или у тебя?
alexeis1 я тоже хотел ручками... только незнаю как. я вообще думал посимвольным просмотром.. а как такое 11/30 14:37792165456481270 мин. 27 сек. 0.03 ??? я незнаю. мне надо из этой строки выделить номер 79216545648, взять сумму 0.03, вычесть её из ИТОГО, запомнитьт и затереть всю строку, и так далее. Ну вообщем я просто принципов не понимаю. Знаний нехватает, а примеров не нашёл в интете, а я то был уверен что это уже делали! --------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
Дык хелп там есть???
ЗЫ прицепи плз два файла: 1. исходный файл 2. так как хошь видеть все (если это не секрет) а там будем на посмотреть -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Проще сразу строкой Например нашли позицию двоеточия
c := pos(':', STRINGLIST1.Strings[i]); далее два символа время + 1 пробел, дальше нужное число из 11 символов значит s := Copy(STRINGLIST1.Strings[i], c + 2 + 1, 11); это строчное представление var b : int64; будет число так как в integer не поместится b := strToInt64(s); вот он заветный номер далее ищем слово "сек." c := pos('сек.', STRINGLIST1.Strings[i]); и проводим анологичные операции (кстати в фаронове turbo pascal) хорошо описаны функции работы со строками все годится идля делфи -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
Зачем? Можно просто строкой хранить. -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
так нужно складывать и делить -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| h2o |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: 1 Всего: 1 |
Что то я долго отвечал но ...не, прога- не секрет, я вообще потом работу хотел выложить на "Арсенал форумистов", может пригодится кому! Ну я вроде понятно в начале темы обьяснил... попробую ещё разок.. подробнее..
Детализированный счёт приходит в html на мыло. Для удобства работы сохраняем его как тхт фаил в котором:
нужно сначала найти нужный номер в тхт (например "Телефон 2584444 Счет 2567896" ), причем условием поиска задавать нужно Счет 2567896 (т.к. в одном файле отчёта может быть несколько номеров счетов, и такое нужно будет с каждым заданным проделать). Потом есть список номеров телефонов, которые надо отфильтровать... например есть в этом списке номер (3я строка - 79214658166). мы его фильтруем, удаляя всю строку, НО! запомнив цифры в конце... чтобы потом их вычесть из ИТОГО и потом вывести результат ввиде хоть чего... месага или файла... это не суть важно... тоесть в конце после фильтрации мы должны получить типа:
исходники набросанной проги могу прикрепить... Это сообщение отредактировал(а) h2o - 17.1.2006, 15:57 Присоединённый файл ( Кол-во скачиваний: 6 )
______________________.rar 32,27 Kb--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
||||
|
|||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
А не проще заново сумировать? // Алгоритм таков: Находим Счет 2567896 (или нужный) и копируем допустим в стриггрид, две строки выше счета и со счетом, далее проверяем строку идущую ниже, на присутствие номера (как в 3 строке у тя), нет копируем, плюс берем последнее чило после "сек. " и добовляем к промеж. переменной ( sum: float), далее след. строка нашли в строке "итого" Заменяем эту строку своей "Итого "+вывод sum -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| h2o |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 19.8.2005 Репутация: 1 Всего: 1 |
Вообщем всё получилось! Всем спасибо за помощь. все операции написал ручками, без компонентов.
Если кому нужнена программа фильтрации номеров телефонов, выкладываю тут! Это сообщение отредактировал(а) h2o - 24.1.2006, 13:18 Присоединённый файл ( Кол-во скачиваний: 10 )
MTF.rar 67,84 Kb--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |