Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 2

Оптимизация скорости выборки в массивах

09.07.2015, 09:29. Показов 794. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Есть 2 массива:
- в первом, к примеру, содержится следующая информация: "Артикул", "Фамилия", "Имя", "Отчество", "Год рождения", "Месяц рождения", "День рождения";
- во втором, к примеру, содержится: "Артикул" и "Зарплата".
Задача сопоставить эти артикулы между собой.
Выполняю переборкой массивов:

Visual Basic
1
2
3
4
5
6
7
8
9
For i = 0 To UBound(Card) - 1
    For k = 0 To UBound(Finance) - 1
        If Card(i).Article = Finance(k).Article Then
            'Артикул найден!
            ' ...
            Exit For
        End If
    Next
Next
Если размерность массивов большая, то процесс переборки занимает довольно продолжительное время.
Может есть какой-либо способ ещё ускорить его?

Все подробности в прикреплённом файле.
Зеркало для скачивания: https://yadi.sk/i/bt9yDEMKhkq7c

P.S.
Прогресс-бар и прочие "излишества" можно не учитывать - это для удобства.
Вложения
Тип файла: zip Example.zip (1.77 Мб, 5 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.07.2015, 09:29
Ответы с готовыми решениями:

оптимизация выборки
есть несколько таблиц и текст который проверяет каждое слово к какой таблице относится, я делаю проверку примерно так ...

Оптимизация выборки из списка
Всем доброе время суток! У меня есть список LIST, где хранятся значения координат. Также у меня есть участок, например 2000м на 2000м,...

Оптимизация запросов выборки
/components/content/frontend.php => getArticlesCount() SELECT 1 FROM cms_content con INNER JOIN cms_category cat ON cat.id =...

4
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,940
Записей в блоге: 4
09.07.2015, 10:21
заинтересовала генерация случайных данных
№ п/пАртикулФамилияИмяОтчествоГод рожденияМесяц рожденияДень рожденияЗарплата 
1"СЦЕПИТЬ (ЦЕЛОЕ (СЛУЧМЕЖДУ (10; 100)/10)*10; СЛУЧМЕЖДУ (100; 999); ""-""; СЛУЧМЕЖДУ (10; 99); ""-""; СЛУЧМЕЖДУ (1000; 9999))""ИНДЕКС ('Мужские фамилии'!$B$1: $B$553; СЛУЧМЕЖДУ (1; 553); )""ИНДЕКС ('Мужские имена'!$B$1: $B$245; СЛУЧМЕЖДУ (1; 245); )""ИНДЕКС ('Мужские отчества'!$B$1: $B$57; СЛУЧМЕЖДУ (1; 57); )""СЛУЧМЕЖДУ (1945; 1995)""СЛУЧМЕЖДУ (1; 12)""СЛУЧМЕЖДУ (1; 30)""ЦЕЛОЕ (СЛУЧМЕЖДУ (10000; 100000)/10)*10" 
250480-61-8501МальцевМирославАнатольевич 19729331 780 
370187-79-7438ЧалыйКимРобертович 195512633 810 
470698-50-5790НиконовГригорийФеликсович 19797791 700 
570480-39-2315МайсакЖданЕгорович 19544181 450 
640673-91-8931ЕпифановХаритонАртемович 1946121737 060 
750155-53-6008ТуполевКасьянФеликсович 194982310 710 
820746-11-3305ЖидковБаженИгоревич 19849170 430 
970540-59-7385ЧмыховСветВитальевич 197222077 070 
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,672
09.07.2015, 11:01
можно попробовать через рекордсет
он быстрее
0
0 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 2
09.07.2015, 11:53  [ТС]
Ответили на форуме planetaexcel
Всем спасибо.
Линк на пример: https://yadi.sk/i/_Mud4BQhhkzZb
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,733
Записей в блоге: 14
09.07.2015, 12:33
Если массивы не меняются, то можно их отсортировать по Article, а потом использовать двоичный поиск
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.07.2015, 12:33
Помогаю со студенческими работами здесь

Оптимизация выборки данных в PostgreSQL
Имею БД с таблицей "log", в которой ~65М строк. Диск загружен не более, чем на 5%. Выполняю простой запрос SELECT * FROM log WHERE plate...

Оптимизация выборки по двум периодам
всем привет. суть выборки declare @startEarlierDate DATETIME, @endEarlierDate DATETIME, @startLaterDate DATETIME, ...

Оптимизация выборки максимального значения
есть 3 таблицы: CREATE TABLE autor ( id MEDIUMINT AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id) ); ...

Оптимизация простого макроса поиска и выборки
Здравствуйте уважаемые форумчане. Помогите мне пожалуйста оптимизировать макрос поиска. Не кидайте тапками, это мой второй в жизни...

Оптимизация выборки из List большого объема
Всем добрый день! У меня есть список координат, где хранятся больше 100к записей. Я прохожу этот список двойным циклом для нахождения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru