![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
![]()
Добрый день, уважаемые форумчане!
Есть такая задача: есть большой массив, строк эдак за 300 тысяч, есть значение (номер товара в примере) и варианты его написания. Искать в массиве и там определить номер строки на листе ну очень долго, потому как это значение берется из другой процедуры, в которой массив тоже очень большой и каждый элемент этого массива и есть то значение, которое проверяется в массивом вариантов. Решил использовать словарь для поиска, написал такой код: Код:
Прошу помощи и заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
![]()
А чем классичесний .FIND на листе не подходит?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
![]()
FIND дольше ищет
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Номер записи в словаре не гарантируется!
Заводите другой словарь, куда кладите ключ с номером. Или в существующем сохраняйте к одному ключу массив значений.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
![]()
О, привет старожилам! Давно не слышались) А как? Что-то типа:
Код:
Кстати, а зачем массив значений, если словарь создается в цикле по каждому столбцу? И почему не гарантируется? Это на случай, если такое же значение еще где-то будет? Последний раз редактировалось strannick; 28.08.2017 в 14:02. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Нет, не так.
Можно так: Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
![]()
Ага, понял) Щас попробую...
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Ещё вариант - сохранять только индекс массива a, когда нужно значение - брать его по этому индексу, так и быстрее будет. Но нужно будет созранять в памяти массив с данными.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
![]()
Так, чего-то наверное не так. Наполнили словарь в цикле по массиву а:
Код:
Код:
С этим проблем нет, и массив и словарь убиваются после того, как прошла проверка. Но мы ж проверяем наличие не a(ii, i), а игрека. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]() Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выводить только измененные строки. Перед каждой строкой записывать номер строки в исходном тексте.используя строки и текст.файл | nero4ka | C++ Builder | 1 | 13.06.2015 07:14 |
Выводить только измененные строки. Перед каждой строкой записывать номер строки в исходном тексте | nero4ka | Помощь студентам | 1 | 11.06.2015 11:08 |
Ввести число N. Вывести N строк с номером строки, двоеточием и набором чисел от 1 до N+1-k (где k-номер строки) ( в С ) | Eduard12345 | Помощь студентам | 1 | 11.10.2013 07:25 |
Вытащить номер из X-Lite | Letnab | Работа с сетью в Delphi | 7 | 03.05.2012 12:20 |
Как вывести на экран номер строки с максимальной суммой элементов и номер столбца с минимальной суммой? | Vetal888888 | C# (си шарп) | 4 | 20.12.2011 13:46 |