|
Повторное использование массива
|
|||
---|---|---|---|
#18+
Уважаемые, Преамбула: есть дин. массив, который заполняется данными из внешнего файла. Этот массив затем используется для перебора значений в цикле. Вопрос: как можно использовать массив для проверки нескольких значений в цикле? Код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
В конце работы программы массив не уничтожается. При новом старте проводится проверка на существование массива и он заново не заполняется. Проблема возникает дальше при поиске значения в массиве (второй цикл) - такое впечатление, что массив содержит пустые значения (проверял через msgbox). Посоветуйте и подскажите, как побороть? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2016, 11:04 |
|
Повторное использование массива
|
|||
---|---|---|---|
#18+
IFK, Вы во втором цикле скалярным переменным присваиваете бегущие значения (если OI_table(i, 0) = f12_mopi встречается больше одного раза), которые последовательно затирают друг друга. Если OI_table(i, 0) = f12_mopi всегда встречается один раз, то почему не выходите из цикла. Строка с i = 0 не нужна. Повторный Trim не нужен. Пустые значения тоже значения - что и как Вы прочитали в некоем внешнем файле - неизвестно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2016, 11:40 |
|
Повторное использование массива
|
|||
---|---|---|---|
#18+
IFK, Что значит в конце программы массив не уничтожается. Уничтожается, программа то закончилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2016, 11:49 |
|
Повторное использование массива
|
|||
---|---|---|---|
#18+
i45, Да, это все верно: в массиве могут встречаться повторяющиеся значения, я просто убрал лишние инструкции из цикла, чтобы не перегружать. Полный цикл выглядит так => Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
авторСтрока с i = 0 не нужна. Повторный Trim не нужен => убрал, но это не меняет дела. авторПустые значения тоже значения - что и как Вы прочитали в некоем внешнем файле - неизвестно. => внешний файл заполнен без пустых значений, в цикле заполнения массива есть проверка на непустые значения. Добавил выход из цикла, как только достигнута линия с пустыми значениями. Все равно это все не решает моей проблемы. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2016, 11:51 |
|
Повторное использование массива
|
|||
---|---|---|---|
#18+
i45, Хм. Я может не совсем правильно выразился - программа не закрыта, там есть условие на выход, внутри которого затирается массив, если выбран выход из программы. Хотя Вы навели меня на мысль. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2016, 11:54 |
|
Повторное использование массива
|
|||
---|---|---|---|
#18+
IFK, В полном цикле значения по-прежнему затирают друг друга. Появление пустых значений ищите в верхнем цикле с debug.assert ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2016, 11:57 |
|
Повторное использование массива
|
|||
---|---|---|---|
#18+
i45, Так я как раз и ищу способ не перезаписывать массив в верхнем цикле. При текущем коде это получается, но сам массив при его повторной проверке во втором цикле оказывается пустой. Скорее всего Вы правы и он затирается при окончании саба. Хочу попробовать объявить массив как паблик в старте формы и посмотреть, что будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2016, 12:06 |
|
Повторное использование массива
|
|||
---|---|---|---|
#18+
IFKi45, Так я как раз и ищу способ не перезаписывать массив в верхнем цикле. При текущем коде это получается, но сам массив при его повторной проверке во втором цикле оказывается пустой. Скорее всего Вы правы и он затирается при окончании саба. Хочу попробовать объявить массив как паблик в старте формы и посмотреть, что будет. Это может помочь, если не выгружать форму. Сам по себе Public расширяет зону видимости переменной, но не время ее жизни. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2016, 12:22 |
|
Повторное использование массива
|
|||
---|---|---|---|
#18+
Поборол: ошибка была в локальном объявлении массива. Спасибо i45 - навел меня на мысль объявить массив глобально. Вместе с Redim Preserve все сработало как надо. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2016, 12:23 |
|
|
start [/forum/topic.php?fid=60&fpage=20&tid=2155460]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 301ms |
total: | 433ms |
0 / 0 |