![]() |
|
Модераторы: Akina |
![]()
|
|
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Всем привет !!!
Столкнулся с таким курьезом ! Имею логи с сотовой станции, логи пишутся через каждые 15 мин. Программа должна снять суточный трафик и выдать это все в гистограмме и линейной диаграмме . Программа работает , но сам импорт занимает очень долгое время, порядка 30мин. Логи с Линукса, все в текстовом файле вот кусок : BTS_DATA_RECORD 2004-11-08 00:00:00 2004-11-08 00:15:00 TurboMAX_BSPLUS.TurboMAX_BSPLUS_bts_0-Cel 20100 1 nbrOfAvailableTCHs = 7 meanNbrOfBusyTCHs = 0 maxNbrOfBusyTCHs = 1 meanNbrOfIdleTCHsPerInterferenceBand = 6, 0, 0, 0, 0 attTCHSeizures = 2 succTCHSeizures = 2 nbrOfAvailableSDCCHs = 4 meanNbrOfBusySDCCHs = 0 maxNbrOfBusySDCCHs = 1 attSDCCHSeizures = 2 attSDCCHSeizuresFailures = 0 accAGCH = 2 accPagingChannel = 2 succAccProcCMReEst = 0 succAccProcCMServ = 0 succAccProcIMSIDet = 0 succAccProcLocUpd = 0 succAccProcPageRsp = 2 succAccProcRACH = 2 succImmediateAssingProcsEmgCall = 0 succImmediateAssingProcsCMReEst = 0 succImmediateAssingProcsPageRsp = 2 succImmediateAssingProcsOrigCall = 0 succImmediateAssingProcsLocUpd = 0 succImmediateAssingProcsOthers = 0 maxNbrOfBlockCH = 0 chanReqMSFail = 0 MinQualityUL = 0 MaxQualityUL = 1 MeanQualityUL = 0 TotalQualityDurationUL = 7001, 671, 0, 0, 0, 0, 0, 0 TotalQualitySamplesUL = 157 CumulativeQualityDistributionUL = 93, 100, 100, 100, 100, 100, 100, 100 Лог порядка 8000 строк , всего логов 96. Происходит все так :
ListBox1 - это список нужных параметров их всегда порядка 20 наименований Но весь импорт занимает очень долгое время , может кто подскажет , что тут оптимизировать. С Уважением ! Илларион г. Ленск |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
Для начала, замени Workbooks(MyBookName).Worksheets(MyBookName).Cells(ff, 1) на переменую.
И код читать полегче будет и возможно повлияет на скорость выполнения (надеюсь, что в лучшую сторону)
-------------------- Никогда не говори никогда |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Хм... да...
Пардон конечно за то , что нет ремаров , ну, а причем тут переменная ?! будет меньше листинг и только или как ?.... ладно использую Set и что сразу все залетает ? Там просто три цикла ........ мне кажется , что все по колхозному из-за этого.....
Я пробывал иначе делал наоборот в один проход по логу перебирал весь список параметров , но увы, результат один и тот .... |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
Alles, во первых читать легче, что уже не маловажно.
А во вторых скорость чтения из переменной быстрее чем из объекта. -------------------- Никогда не говори никогда |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Хорошо учту ...
|
|||
|
||||
| Vach |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 8 Всего: 18 |
"Workbooks.OpenText"
Сами логи хранятся в тексте? Если да, тогда зачем нужен Workbooks. |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Хм... это тоже вопрос !
Тут маневр такой . BTS_DATA_RECORD 2004-11-08 00:00:00 2004-11-08 00:15:00 TurboMAX_BSPLUS.TurboMAX_BSPLUS_bts_0-Cel 20100 1 - Вот это грубо говоря устройсво, их пока всего 5 т.е : 10100 10200 10300 20100 20200 Вот по каждому устройству пишется лог , в каждом устройстве около 1000 параметров , включая мусор с дополнительных устройств. Итого вылазиит около 7800-8000 строк. считывать значения мне приходиться по строкам . Начинаем с первой строки т.е. BTS_DATA_RECORD 2004-11-08 00:00:00 2004-11-08 00:15:00 TurboMAX_BSPLUS.TurboMAX_BSPLUS_bts_0-Cel 20100 я делаю цикл с первой строки и объявляю , что это устройство [20100 . Для меня заморока состоит в том , что это не текстовый файл с разделителями , а нечто слитое все в одну строку и из которого я должен выдрать : параметр значение устройство время Тут мне кто то на досуге посоветовал на Перле все сделать , но увы я в нем как свинья в апельсинах , пардон за каламбур........................ |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Вот так выглядит лог на самом деле. При открытии Excel - ом все в полне сносно как указанно выше т. е по строкам.
BTS_DATA_RECORD 2004-11-08 00:00:00 2004-11-08 00:15:00 TurboMAX_BSPLUS.TurboMAX_BSPLUS_bts_0-Cel 20100 1 nbrOfAvailableTCHs = 7meanNbrOfBusyTCHs = 0maxNbrOfBusyTCHs=1meanNbrOfIdleTCHsPerInterferenceBand = 6, 0, 0, 0, 0attTCHSeizures = 2succTCHSeizures = 2nbrOfAvailableSDCCHs = 4meanNbrOfBusySDCCHs = 0maxNbrOfBusySDCCHs = 1attSDCCHSeizures = 2attSDCCHSeizuresFailures = 0accAGCH = 2accPagingChannel = 2succAccProcCMReEst = 0succAccProcCMServ = 0succAccProcIMSIDet = 0succAccProcLocUpd = 0succAccProcPageRsp = 2succAccProcRACH = 2succImmediateAssingProcsEmgCall = 0succImmediateAssingProcsCMReEst = 0succImmediateAssingProcsPageRsp = 2succImmediateAssingProcsOrigCall = 0succImmediateAssingProcsLocUpd = 0 BTS_DATA_RECORD 2004-11-08 00:00:00 2004-11-08 00:15:00 TurboMAX_BSPLUS.TurboMAX_BSPLUS_bts_0-Cel 20200 |
|||
|
||||
| Vach |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 8 Всего: 18 |
Выложи в txt (или на мыло кинь), я покручу и в виде класса выдам обработчик.
Txt нужен чтобы точно, до запятой и пробела быть уверенным в результате. Это сообщение отредактировал(а) Vach - 13.11.2004, 00:07 |
|||
|
||||
| Alles |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Всем опять привет !!!
прошу прощения за назойливость, но вот , что у меня получилось :
Время обработки всех файлов сократилось с 40 мин до 25 секунд. Но ! если я открываю файл как есть ни какой обработки не происходит. Line Input #1, InputData в переменную залетает последние две строки файла. Сделал коряво конечно но просто время жмет. Написал макрос в Ворде он открывает так же по циклу файлы логов и просто сохраняет их в тектовом формате. После этого все идет нормально (по строчно ). Может я програмно не правильно открываю файл ? Open MyFile For Input As FreeFile - вот тут ? Добавлено @ 07:34 Прошу прощения за косяк , когда копировал строку с кода , видать запарился и вырезал в коде где ремарк :
еще раз извените за невнимательность ! |
||||
|
|||||
| Vach |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 8 Всего: 18 |
FreeFile может вернуть не только #1, делай так
как есть - это как? Line Input #1, InputData в переменную залетает последние две строки файла - как именно последние две строки туда залитают? замени Workbooks("BSS222_Diagram").Worksheets("Import") на переменную, быстрее работать будет.
|
||||
|
|||||
| Alles |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Как есть т.е. файл взятый по FTP сервера Unix Да я сам честно говоря не мойму почему так . Vach лучше один раз увидеть. Куда тебе скинуть лог файл ? Кстати так как ты сказал тоже результата не дало (((
|
||||
|
|||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
Alles, если я правильно помню, то на UNIX-е знак новой строки не такой как в винде.
Возможно из за этого Line Input не так работает. -------------------- Никогда не говори никогда |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Может быть я не буду спорить , но когда эту хрень ( пардон за ругательство ) открываешь Вордом и просто сохраняешь в тхт все идет нормально т.е. фай разбивается по строкам.
|
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
Alles, это подтверждает мое подозрение.
Надо посмотреть на файл в бинарном/HEX виде, и посмотреть какие символы у него в конце строки. -------------------- Никогда не говори никогда |
|||
|
||||
| Vach |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 8 Всего: 18 |
Alles файлы пришли, буду смотреть.
Это сообщение отредактировал(а) Vach - 16.11.2004, 15:54 |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Да , там стоит перенос , но какова хрена он не переносит я не знаю
Ворд показал наличие переноса после значения каждого параметра и еще точки вместо пробелов . Добавлено @ 15:52 Hi Vach ! все должно быть у тебя |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
Alles, что значит перенос? Какой ASCII код?
Line Input читает строку до ASCII кода 13 или (13 и 10) Добавлено @ 15:55 А может стоит весь файл целиком прочитать в стринговую переменную, поделить split-ом на строки и уже работать с готовым массивом строк. -------------------- Никогда не говори никогда |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Hi boevik !
большое спасибо за участие !!! может тебе тоже лог кинуть и сам тогда все увидишь |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
Alles, кидай. [email protected]
-------------------- Никогда не говори никогда |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Hi boevik !
файлы у тебя |
|||
|
||||
| Vach |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 8 Всего: 18 |
Вот так вроде работает.
Это сообщение отредактировал(а) Vach - 16.11.2004, 17:07 |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
Alles, так и есть. Символ разделения строк в файле имеет код 10, поэтому Line Input его игнорировал.
Vach, тебе уже подсказал код. Но если не боишься использовать дополнительные библиотеки (Microsoft Scripting Runtime), то вот код:
Это сообщение отредактировал(а) boevik - 16.11.2004, 16:52 -------------------- Никогда не говори никогда |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Мужики !!!!!!!!!!!!!!!!!!!!!!
боооольшое спасибо !!!!!!!!!!!! сегодня у нас уже поздновато тут на севере. Завтра все попробую. Еще раз боольшое спасибо за участие. с меня ящик коньяку !!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
|
||||
| Vach |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 8 Всего: 18 |
Так всяко лучше.
|
|||
|
||||
| Alles |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Еще раз всем привет !
Вы уж простите меня тупорылого , но результат остался тот же !!!(((((
Задача стоит такая, когда я открываю лог-файл я должен его пробежать по строчно. Ключевые строки в логе это :
Для меня тут важно: 20100 - устройство (всего их 5 - 20100,20200,10100,10200,10300) 00:30 - время записи и дальше идут параметры со значениями данного устройсва. Дальше пошел цикл на интересуещие меня параметры их пока 19. т.е. я пробегаю по файлу 19 раз. Все скидывается на лист Impotr, где : Параметр_____Заначение______Время______Устройство Когда лог сохранен в тхт все идет просто здорово. т.е. просто открываю его Вордом и жму сохранить, ВСЕ!!! проблем нет все читается по строчно ( уже в программе) , но когда я открываю его как есть опять повторюсь
и до конца файла все залетает скопом. И как с этим бороться я не знаю (((( |
||||||
|
|||||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
Alles, привет.
После того как ты считал данные в sText, надо разбить их на строки командой Split. И уже пробегать по sLines() -------------------- Никогда не говори никогда |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Это все понятно !
Но почему только данные берутся только конечные ? Не сначала файла , а просто последний кусок !!! |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
Alles, я не понимяю о чем ты. У меня считывается весь файл.
Добавлено @ 08:39 Показывай код. -------------------- Никогда не говори никогда |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
У меня короче уже башню рвет.
Немного по позже, лишнее повыкидываю и если хочешь метну к тебе. |
|||
|
||||
| Vach |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 8 Всего: 18 |
У меня байт в байт, всегда. Если есть разница, ищи ошибку в другом месте. |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
ВСЕ !!!!!!!!!!!!!!
УРА !!!!!!!!!!!!!! Работает все в лет !!!!! Всем С П А С И Б О !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |