Выкладываю отладочную версию 0.4 с исходниками. В неё добавил формирование протокола в Excel. Если всё пойдёт нормально, в конце недели будет официальная версия у меня на сайте. Но смущает отсутствие отзывов и предложений - как будто никто не пробует, а тестирую я один.
Объявление
Свернуть
Пока нет объявлений.
Письма с превышением уплаты за год
Свернуть
X
-
Спасибо. А я думаю, чего это размер exe-файла похож на приложения старого Visual BASIC (к ним надо было ещё двухмегабайтную библиотеку прикладывать, иначе не работали). Решил сперва, что поначалу функций маловато, поэтому и программка небольшая получилась.Сообщение от vk65 Посмотреть сообщениеДа, проблема исчезла.
-
Спасибо
0
Комментарий
-
-
Да, я тоже обратил внимание, что размер был гораздо меньше, чем у vlsverkaPF.
Посмотрел исходники, появилась пара мыслей.
1. Читать из excel по одной ячейке - довольно медленный процесс, на больших объемах исходных данных может сильно тормозить. А если попробовать читать в массив сразу весь лист? Не знаю как в дельфи, на фоксе, к примеру, работает такая конструкция: aArray = oSheet.range(cells(row1,col1),cells(row2,col2)).Va lue.
2. Можно читать из xls, используя ADO. При этом не нужно наличие excel на компе.
-
Спасибо
0
Комментарий
-
-
OLE везде одинаков, за исключением мелких деталей. Знать бы ещё заранее, сколько строк будет в Excel-файле, чтобы сразу задать range на весь лист... Вместе с тем считаю, что построчное чтение и реализуемо практически, и будет иметь смысл с точки зрения скорости (хотя вообще сравнительный хронометраж обоих методов на сколь-нибудь существенных объёмах мне был бы весьма интересен). Если найду варианты для Excel и OpenOffice, и всё заработает, то обязательно пропишу. Но это вопрос совершенствования: сперва хочу выложить первую официально рабочую версию.Сообщение от vk65 Посмотреть сообщение1. Читать из excel по одной ячейке - довольно медленный процесс, на больших объемах исходных данных может сильно тормозить. А если попробовать читать в массив сразу весь лист? Не знаю как в дельфи, на фоксе, к примеру, работает такая конструкция: aArray = oSheet.range(cells(row1,col1),cells(row2,col2)).Va lue.
А по этой части возникает вопрос: есть ли соответствующие компоненты и драйверы (сами объекты ADO, ODBC-драйвер Excel?) на "голой" Windows (даже редакции Starter), или же их нужно устанавливать отдельно? Второй вариант с позиции своего опыта техподдержки некоторых программ не могу считать приемлемым. Фразу "не работает - установи Excel или скачай и поставь опенофис" поймёт даже не слишком продвинутый пользователь, и он разберётся с тем, что надо сделать, откуда скачать и как запустить. А про какие-то там библиотеки ADO, драйверы ODBC и т. п. неопытный компьютерщик может просто не знать и вследствие оного не справиться с задачей запуска программы на компьютере (про всевозможные конфликты версий, используемых в т. ч. другими программами на этом же компьютере, я вообще молчу). Сверка у нас получилась конфеткой с минимальным количеством пользовательских вопросов во многом потому, что вообще не требовала установки сторонних компонентов: даже XML-парсер использовался не Microsoft-овский, а был написан отдельно и встроен внутрь. Здесь как пойдёт, я пока не знаю даже в текущем варианте: нет массового использования и сколь-нибудь большого опыта использования. Поживём - увидим.Сообщение от vk65 Посмотреть сообщение2. Можно читать из xls, используя ADO. При этом не нужно наличие excel на компе.
-
Спасибо
0
Комментарий
-
-
Есть несколько способов. Я чаще всего делаю так: nRows = oSheet.Range("A65536").End(xlUp).RowСообщение от lubezniy Посмотреть сообщениеЗнать бы ещё заранее, сколько строк будет в Excel-файле, чтобы сразу задать range на весь лист...
Да, на голой Win их нет. Они входят в состав любого офиса (кроме, наверное, версий starter), т.е., если установлен excel, они есть. Кроме того, их можно скачать с майкрософта, согласен, что для неподготовленных пользователей это не очень удобно, зато - бесплатно.Сообщение от lubezniy Посмотреть сообщениеА по этой части возникает вопрос: есть ли соответствующие компоненты и драйверы (сами объекты ADO, ODBC-драйвер Excel?) на "голой" Windows (даже редакции Starter), или же их нужно устанавливать отдельно?
С другой стороны, это работает быстрее по сравнению с использованием excel.application. Я недавно дорабатывал одну программку, там как раз исходные данные читаются из таблицы xls (примерно 15 строк, 150 столбцов), разница ощутима.
-
Спасибо
0
Комментарий
-
-
Спасибо. По мере возможности поищу что-то похожее для OpenOffice. Если всё найдётся, буду делать.Сообщение от vk65 Посмотреть сообщениеЕсть несколько способов. Я чаще всего делаю так: nRows = oSheet.Range("A65536").End(xlUp).Row
Посмотрим. В "голом" варианте (без офисного пакета) смысла немного: полученный протокол желательно не только в чём-то открывать (для этого сойдёт и встроенный IE), но и обрабатывать (тут уже без Excel или OpenOffice вряд ли будет удобно). А много ли будет необходимости в скорости, достигаемой при помощи ADO, пока непонятно: надо проводить замеры на больших объёмах данных.Сообщение от vk65 Посмотреть сообщениеДа, на голой Win их нет. Они входят в состав любого офиса (кроме, наверное, версий starter), т.е., если установлен excel, они есть. Кроме того, их можно скачать с майкрософта, согласен, что для неподготовленных пользователей это не очень удобно, зато - бесплатно.
С другой стороны, это работает быстрее по сравнению с использованием excel.application. Я недавно дорабатывал одну программку, там как раз исходные данные читаются из таблицы xls (примерно 15 строк, 150 столбцов), разница ощутима.
-
Спасибо
0
Комментарий
-
-
Доделал и выложил на http://www.lubezniy.ru/soft/vlsverkapf первую официальную версию сверки ПТК.
-
Спасибо
0
Комментарий
-
-
Обновил версию: в первой, как оказалось, не совсем корректно формировалась Excel-форма протокола, в результате чего она в некоторых случаях не открывалась.
Провёл также хронометраж работы программы на заведомо слабоватой конфигурации. Нетбук с двухъядерным процессором от AMD, двумя гигабайтами ОЗУ, 32-битной Windows 7 Home Basic и OpenOffice 3.4.1 управился с обработкой запроса на чуть менее 1000 застрахованных лиц и ИС из выложенного выше тестового примера примерно за 2 минуты. Скорость, конечно, не ахти какая, да и на чтение XML-файлов соответствующего объёма надо выделить ещё с минуту (про открытие протокола в OpenOffice не знаю даже - проверял на HTML-форме), но в целом работает шустрее, чем я ожидал. Ускорять буду по мере возможности.
-
Спасибо
0
Комментарий
-
-
Ты бы эту ссылку выложил где-то в постоянный доступ, чтобы не искать ее постоянно.Сообщение от lubezniy Посмотреть сообщениеДоделал и выложил на http://www.lubezniy.ru/soft/vlsverkapf первую официальную версию сверки ПТК.
Например, в каждое сообщение как "подпись"
-
Спасибо
0
Комментарий
-
-
А ничего, что сегодня все еще 14-е апреля, а на странице у тебя написано, что 15-е?Сообщение от lubezniy Посмотреть сообщениеОбновил версию: ...
-
Спасибо
0
Комментарий
-
-
Я вообще думаю ссылки в подписях запретить: спамом замучили.Сообщение от yante Посмотреть сообщениеТы бы эту ссылку выложил где-то в постоянный доступ, чтобы не искать ее постоянно.
Например, в каждое сообщение как "подпись"
-
Спасибо
0
Комментарий
-
реклама
Свернуть

Комментарий