Суббота, 30.11.2024, 18:42
Приветствую Вас, Гость | RSS
Реклама
Категории раздела
Статьи посвещенные работе с Excel с использованием Delphi 7 [2]
Работа с базами данных [2]
Прочее [1]
Разработки Воропай Андрея [3]
Публикация разработок автора: Воропай Андрей (waw) Разработка прикладного, системного ПО, БД, Delphi, SQL. Стаж работы 13 лет.
Фрактальная геометрия [3]
Фракталы (от лат. fractus - изломанный) Обладают двумя основными признаками - изломанностью и свойством самоподобия. В данной категории мы рассмотрим примеры программ на Delphi для создания фракталов.
Не программирование [0]
Реклама
личность и деятельность ивана болотникова
принципы кооперации труда
особенности стратегий для гостиницы
viagra 100mg cialis 5mg
cialis precio accutane
where to get green coffee
achater viagra en ligne
cialis canada  viagra  viagra prix  viagra   Подключил опцию Одноклассники онлайн  comprar viagra  cialis france  acheter viagra en ligne  viagra generique  prix du viagra  acheter viagra en ligne  Siamo qui per fornire tutto viagra sessualmente eccitato  prix du viagra  cialis generique  viagra pas cher  dysfonction erectile  viagra generico
Вход
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

К началу

Главная » Статьи » Разработки Воропай Андрея

Исключение дубликатов строк
Программа работает таким образом. Запускаем программу, нажимаем кнопку "Загрузить Excel файл" и выбираем файл для обработки.
Программа сама определяет первую строку со значениями, пропускает ее считая ее заголовком для столбцов.
Фактически нам все равно с какой строки будут начинаться данные, с любой. При желании номер строки можно указать.
Так же можно выбрать какой лист книги будем обрабатывать.



Затем нажимаем кнопку "Обработаем файл" и ждем 3 часа:). Кнопкой "Остановка обработки" можно прекратить цикл обработки, при этом промежуточные результаты можно сохранить.
Во время обработки программа отображает 2 индикатора процесса. Первый это строки, второй это колонки. Так же отображается реальное затраченное время и усредненное время работы. Индикаторы обновляются через каждые 50 строк.

Как работает программа:
1. Организовываем цикл перебора всех заполненных столбцов начиная с 8-го. Последний столбец определяется автоматически. Можно добавлять любое количество столбцов, программа обработает их верно.
2. Для каждого столбца организовываем цикл по всем строкам, начиная от начальной строки данных+1 (пропускаем заголовок).
3. Для каждой ячейки пытаемся разделить значения через запятую. И для каждого полученного значения производим поиск, только в диапазоне - "Текущая ячейка + 1" до последней строки.
4. Если значение в очередной строке совпало то пытаемся все значения из данной строки (диапазон от текущей колонки, так получится на уменьшение), добавить через запятую в эталонную стоку (с которой начали искать). Дубликаты значений не добавляем. Если значений в ячейке несколько, организовываем перебор для каждого значения разделенного запятой.
5. Потом добавляем ACM номер через запятую в эталонную строку.
6. Поиск производим до того момента как найдем все значения по текущей колонке, для эталонной строки.
7. Колонки помеченные как дубликаты, повторно не обрабатываются.

Оптимизировал, при работе с Excel VBA работает намного дольше. Все равно работает долговато, но обработка насчитывает в себе порядка 5 млн. операций, это много....

Лучший вариант был бы, загрузить данные из таблицы в БД, обработать их при помощи SQL запросов, затем опять выгрузить в Excel, думаю работать будет около получаса.... не больше.

Источник: http://www.weblancer.net/users/waw/portfolio/1076887.html#item
Категория: Разработки Воропай Андрея | Добавил: waw (13.01.2011) | Автор: Воропай Андрей Валериевич E W
Просмотров: 1113 | Теги: VBA, Excel, XLS, Delphi | Рейтинг: 0.0/0
Всего комментариев: 0
g to the place, where the Comments block will be -->
Имя *:
Email:
Код *:
Информация

Смотреть фильмы в хорошем качестве эротика мультфильмы ужасы фантастика боевики комедия приключения всё это можно скачать бесплатно с помощью торрента с фильмом или мультфильмом
Банковские услуги
Запорожье