Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск интервалов времени в файле Excel, помогите пожалуйста! 
:(
    Опции темы
dyzy
Дата 15.1.2010, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 14.1.2010

Репутация: нет
Всего: нет



Доброго времени суток, кважаемые форумчане!

У меня к вам больщая прозьба проконсультировать меня в давольно интересном вопросе!

Исходные данные:

- имеем файл-отчет из компании фелефонной связи в формате Excel. В данном документе содержиться таблица из пяти столбцов и неогранчеснного количества строк (в моем случае 9014 строк). первый столбец - номер телефона, второй - отдел, третий - дата  совершени звонка в формате дд.мм.гг,  четвертый - время начала звонка в формате чч.мм.сс, пятый столбец - длительность звонка в секундах.  Таблица отсортирована в хронологическом порядке.

Задача заключается в следующем:

- Необходимо определить интервалы времени, когда совершались доновременно 4 звонка. (т.е. при наличии 4-х линий связи были заняты все 4). 

Выходные данные должны иметь вид: с чч.мм.сс по чч.мм.сс было занято 4 линии.

Ломаю голову над этой задачей уже 3-й день. Мое рещение имеет следующий вид:

1. Подключить файл excel к программе
2. организовать поиск в файле с условием <=
3. при условии 4 совпадений запись в массив.

Как все это сделать??? - Ума не приложу smile 
PM MAIL   Вверх
bsa
Дата 15.1.2010, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Можно файл excel преобразовать в текстовый (csv), а его уже парсить - будет гораздо проще и быстрей.
2 и 3 - дело техники.
Еще вопросы?

PM   Вверх
xvr
Дата 15.1.2010, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



  •  Из Execl вытащить время звонков в виде набора диапазонов (дд.мм.гг/чч.мм.сс - дд.мм.гг/чч.мм.сс)
  •  Список интервалов преобразовать в список точек вида: (дд.мм.гг/чч.мм.сс, флаг - начало/конец интервала)
  •  Отсортировать список по дд.мм.гг/чч.мм.сс
  •  Пройти по списку, подсчитывая количество активных интервалов (if (начало) ++count; else --count;)
  •  >> Если count стал >=4 - вывести дд.мм.гг/чч.мм.сс как начало выходного интервала
  •  >> Если count стал <4 - вывести дд.мм.гг/чч.мм.сс как конец выходного интервала

PM MAIL   Вверх
dyzy
Дата 16.1.2010, 22:32 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 14.1.2010

Репутация: нет
Всего: нет



Цитата(xvr @ 15.1.2010,  13:09)

  •  Из Execl вытащить время звонков в виде набора диапазонов (дд.мм.гг/чч.мм.сс - дд.мм.гг/чч.мм.сс)
  •  Список интервалов преобразовать в список точек вида: (дд.мм.гг/чч.мм.сс, флаг - начало/конец интервала)
  •  Отсортировать список по дд.мм.гг/чч.мм.сс
  •  Пройти по списку, подсчитывая количество активных интервалов (if (начало) ++count; else --count;)
  •  >> Если count стал >=4 - вывести дд.мм.гг/чч.мм.сс как начало выходного интервала
  •  >> Если count стал <4 - вывести дд.мм.гг/чч.мм.сс как конец выходного интервала

Если б я знал как это сделать(((
PM MAIL   Вверх
zim22
Дата 16.1.2010, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: нет
Всего: 69



Цитата(dyzy @  16.1.2010,  21:32 Найти цитируемый пост)
Если б я знал как это сделать(((

информации о том как это сделать в интернете предостаточно. было бы желание.


--------------------
PM MAIL   Вверх
dyzy
Дата 16.1.2010, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 14.1.2010

Репутация: нет
Всего: нет



Цитата(zim22 @ 16.1.2010,  22:36)
Цитата(dyzy @  16.1.2010,  21:32 Найти цитируемый пост)
Если б я знал как это сделать(((

информации о том как это сделать в интернете предостаточно. было бы желание.

В том то и проблема что информации предостаточно!!! А как преобразовать данные AnsiString формата excel ВРЕМЯ в integr?????????????????????????

Застрял!
PM MAIL   Вверх
Master01
Дата 17.1.2010, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 22.8.2007

Репутация: нет
Всего: 2



А что не ясно? как читать Excel из программы? 
если да то посмотрите в сторону COM, есть такой компонент progid кажется - Excel.Application. - по сути это api на ексель. Через него можно делать что угодно - от загрузки и чтения файлов до изменения формата или атриабутов ячеек и запуска макросов, только вот писать макросы нельзя (только рекордом)

А вообще можете просто макрос написать. Запускаете Excel нажимаете F11 и пишете. Правда там Visual Basic - но для этих целей этого более чем достаточно.

да и вариант с csv тоже хорошо.
PM MAIL   Вверх
dyzy
Дата 17.1.2010, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 14.1.2010

Репутация: нет
Всего: нет



Цитата(Master01 @ 17.1.2010,  01:15)
А что не ясно? как читать Excel из программы? 
если да то посмотрите в сторону COM, есть такой компонент progid кажется - Excel.Application. - по сути это api на ексель. Через него можно делать что угодно - от загрузки и чтения файлов до изменения формата или атриабутов ячеек и запуска макросов, только вот писать макросы нельзя (только рекордом)

А вообще можете просто макрос написать. Запускаете Excel нажимаете F11 и пишете. Правда там Visual Basic - но для этих целей этого более чем достаточно.

да и вариант с csv тоже хорошо.

у меня уже есть строка ansistring (точнее две строки) содержащие числа! мне нужно их сранить!
Как это сделать? подскажите пожалуйста!
PM MAIL   Вверх
xvr
Дата 17.1.2010, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(dyzy @ 17.1.2010,  01:34)
у меня уже есть строка ansistring (точнее две строки) содержащие числа! мне нужно их сранить!
Как это сделать? подскажите пожалуйста!

Код

ShortDateFormat = "dd/mm/yy";
DateSeparator = ":";
TimeSeparator = ":";
TDateTime val1(s1);
TDateTime val2(s2);
if (val1<val2) ...


Это сообщение отредактировал(а) xvr - 17.1.2010, 11:17
PM MAIL   Вверх
dyzy
Дата 18.1.2010, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 14.1.2010

Репутация: нет
Всего: нет



Цитата(xvr @ 17.1.2010,  11:17)
Цитата(dyzy @ 17.1.2010,  01:34)
у меня уже есть строка ansistring (точнее две строки) содержащие числа! мне нужно их сранить!
Как это сделать? подскажите пожалуйста!

Код

ShortDateFormat = "dd/mm/yy";
DateSeparator = ":";
TimeSeparator = ":";
TDateTime val1(s1);
TDateTime val2(s2);
if (val1<val2) ...

Огромнейшее СПАСИБО!!!!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.