|
|
||||||
Как проверить пуст ли массив?22.07.2015, 09:47. Показов 40066. Ответов 42
Метки нет (Все метки)
это продолжение темы. интересует грамотность записи
Еще интересно: как его грамотно начать заполнять. Так чтобы не было нулевой позиции в начале и постоянной проверки на ее заполненность в последующем
0
|
||||||
| 22.07.2015, 09:47 | |
|
Ответы с готовыми решениями:
42
Как грамотно проверить: пуст ли массив? Как проверить, что выбранный диапазон ячеек пуст Как проверить в с++ пуст файл или нет? |
|
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,220
|
||
| 22.07.2015, 10:13 | ||
|
если ячейка не пустая то вносим значение в массив.
0
|
||
|
|
|
| 22.07.2015, 11:12 [ТС] | |
|
Vlad999, согласен. Я постоянно так и делаю. Но проверять постоянно есть-ли запись в первой строке - это увеличение операций по заполнению массива в 2 раза. Вот я и спрашиваю: какие технологии заполнения массивов спецами используются. Чтобы не было лишних проверок состояния массива на "полный, пустой"
0
|
|
|
2062 / 491 / 134
Регистрация: 13.11.2008
Сообщений: 935
|
|
| 22.07.2015, 11:53 | |
|
Трудно что-то советовать, когда не видно как Вы этот массив заполнять собрались.
Есть определенные костыли, чтобы проверить является ли переменная массивом и есть ли в нем хоть какое-то значение. Но здесь большую роль играет и то как переменная массива была объявлена - как массив Dim Arr() или как переменная типа Variant Dim Arr
0
|
|
|
|
||||||
| 22.07.2015, 12:37 [ТС] | ||||||
|
The_Prist, привожу пример
Рабочий массив постоянно обновляется и дополняется частью глобального массива. Проводятся какие-то операции, потом рабочий массив очищается и снова всё повторяется. Вот такие циклы заполнения исчисляются десятками и сотнями тысяч. Соответственно число операций по проверке удваивает эту величину. И наворачивает код
0
|
||||||
|
2062 / 491 / 134
Регистрация: 13.11.2008
Сообщений: 935
|
||||||
| 22.07.2015, 12:50 | ||||||
Сообщение было отмечено AndreA SN как решение
Решение
И все же не видно как объявлен этот массив. Где строка объявления Iskl2?
Он как объявлен? dim Iskl2()? Или иначе? В общем случае куда грамотнее завести отдельную переменную-счетчик dim Iskl2_Cnt as Long и потом просто её увеличивать:
1
|
||||||
|
|
||||||
| 22.07.2015, 13:00 [ТС] | ||||||
|
The_Prist, извиняюсь... проглядел ответный вопрос об объявлении массива
уточняю объявление
Добавлено через 2 минуты кстати. Спасибо за ответ для общего случая. Это, наверное, самый понятный мне подход...
0
|
||||||
|
|
||||||
| 22.07.2015, 13:44 | ||||||
|
Смотря что считать пустым массивом...
2
|
||||||
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,672
|
|
| 22.07.2015, 13:51 | |
|
а массивы большие
0
|
|
|
|
||||||
| 22.07.2015, 14:31 | ||||||
|
AndreA SN, только не забывайте, что результат операции - это не BOOL, а указатель на SAFEARRAY.
Так, что если нужно проверить на "Empty", пишем:
2
|
||||||
|
|
|||||||
| 22.07.2015, 14:45 [ТС] | |||||||
|
snipe, опять же смотря из какого объема действий исходить.
вот две обработки одного и того же суммирования
Но! У меня по времени получилась разница в 1,5 раза 0,15625 6000000 0,2617188 6000000 а по максимальному размеру цикла - читай по Ubound(массив) разница составила 300 раз... Хотя я понимаю, что мне сейчас выставят произведение размеров как конечное количество действий но речь в данном случае всё таки о размерах обрабатываемой информации в зависимости от сложности шага обработки... Добавлено через 13 минут Dragokas,
0
|
|||||||
|
|
||||||
| 22.07.2015, 22:31 | ||||||
Сообщение было отмечено AndreA SN как решение
Решение
AndreA SN, да. Вы правы. Перемудрил. Можно проще.
что он и делает. Если указатель нулевой (т.е. массив неинициализирован), тогда Not 0 = -1.
1
|
||||||
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,672
|
||||||
| 23.07.2015, 04:02 | ||||||
|
AndreA SN, есть 2 функции Join и Split
первая собирает массив в текстовую переменную а вторая наоборот разбирает текстовую переменную в массив если текстовая переменная выдержит то работать по идее это должно быстрее вы ведь пытаетесь из много массивов сделать один код будет выглядеть примерно так
1
|
||||||
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,672
|
|
| 23.07.2015, 04:09 | |
|
Dragokas,
в коде VBA номера строк сползают вверх относительно текста строк
0
|
|
|
3305 / 933 / 201
Регистрация: 14.01.2013
Сообщений: 4,775
|
|
| 23.07.2015, 06:54 | |
|
В Опере всё норм выглядит.
1
|
|
| 23.07.2015, 09:01 | |
|
Не по теме: так я тоже в опере делал
0
|
|
|
|
||
| 23.07.2015, 10:54 [ТС] | ||
|
snipe,
Добавлено через 11 минут snipe, по поводу строчек... у меня в Chrom всё вроде норм выглядит
0
|
||
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,672
|
|
| 23.07.2015, 11:01 | |
|
AndreA SN, вы тему разместили в разделе VBA, а в какой программе вы все это делаете?
0
|
|
|
|
|
| 23.07.2015, 11:25 [ТС] | |
|
snipe, толковый вопрос))) мне уже столько людей у виска пальцем крутит по поводу моего проекта в VBA))) И Вы почуяли, что моя задача монстрифицирована.
Пишу всё в Excel. Начиналось как побочная группа минимакросов по предварительной обработке данных. Разрослось до масштабного проекта по верификации сведений с функцией минимизации влияния "шаловливых ручек". В итоге на стадии завершения программа-прототип. Конечный продукт будет рисоваться в Шарпее. Добавлено через 9 минут Просто почему VBA: 1. Если на VBA будет быстрей - то на шарпее будет летать аки бчёл! 2. excel - замечательный полигон для отладки работы с двумерными базами данных при сложном аналитическом инструментарии. Я вижу что происходит с данными и соответственно отлаживаю инструменты поиска 3. размечаю в цвете измененные позиции - получается учет изменений для оценки объемов корректировок 4. не нужно специального программного обеспечения - работаю на 5 машинах в разное время - нигде не ставлю шарпик это быстрый список причин - почему VBA.
0
|
|
| 23.07.2015, 11:25 | |
|
Помогаю со студенческими работами здесь
20
Как проверить пуст или нет буфер обмена? Проверить, пуст ли файл Проверить пуст ли Listbox Списки. Не могу проверить, пуст ли список SQL через ODBC: проверить перед вытаскиванием sqlread[0] что столбец не пуст Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В качестве. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|