8 / 8 / 5
Регистрация: 28.10.2012
Сообщений: 135
|
||||||
1 | ||||||
Как сделать запись в динамический двумерный массив28.10.2012, 23:30. Показов 5274. Ответов 9
Метки нет (Все метки)
что то не понимаю...на втором шаге Redim (2,2) пишет ошибку выхода из области...
0
|
28.10.2012, 23:30 | |
Ответы с готовыми решениями:
9
Как сделать двумерный динамический массив на 4 столбца ? Как сделать двумерный динамический массив типа А Как сделать двумерный динамический массив свойством класса Двумерный динамический массив и запись в него |
8 / 8 / 5
Регистрация: 28.10.2012
Сообщений: 135
|
|
28.10.2012, 23:40 [ТС] | 3 |
А у меня размерность фиксированная (1 на 2), как тогда увеличивать его размер...redim preserve видимо, только что в скобках?
0
|
призрак
|
|
28.10.2012, 23:41 | 4 |
недавно в очередной раз обсуждали.
почитайте здесь: Как использовать ReDim Preserve для двумерного массива
0
|
6945 / 2849 / 549
Регистрация: 19.10.2012
Сообщений: 8,724
|
|
28.10.2012, 23:52 | 5 |
Судя по коду, тут можно делать так - сразу объявить массив максимально нужного размера, затем собирать критерии в словарь с номером строки этого массива, куда копируем данные.
Т.е. проверку наличия делаем в словаре, что быстрее, хотя на 10 значений можно в цикле перебирать и массив цикл в цикле. Если не хочется объявлять массив с запасом - можно собирать данные в две параллельные коллекции без ключей. В конце можно объявить нужный массив и переложить данные.
0
|
8 / 8 / 5
Регистрация: 28.10.2012
Сообщений: 135
|
|
28.10.2012, 23:58 [ТС] | 6 |
Как я понял просто изменять второй параметр..Неужто нельзя просто создавать новую строку в массиве перед добавлением?
Добавлено через 3 минуты Сразу объявить максимальный массив для меня не катит, так как нужно будет обработать неизвестное количество ячеек листа (в итоге сформировать массив различных имен)...с коллекциями не работал, нужно посмотреть.
0
|
6945 / 2849 / 549
Регистрация: 19.10.2012
Сообщений: 8,724
|
|
29.10.2012, 00:06 | 7 |
Как это неизвестное? Всегда можно определить количество заполненных ячеек листа.
Конечно, если из миллиона отберёте всего десяток - то объявлять массив на миллион немного расточительно... Вы покажите задачу целиком - вполне может быть, что она решается в 10 строк кода.
0
|
призрак
|
||||||
29.10.2012, 00:14 | 8 | |||||
как я понял, этого будет достаточно:
0
|
8 / 8 / 5
Регистрация: 28.10.2012
Сообщений: 135
|
|
29.10.2012, 00:14 [ТС] | 9 |
Задача не вся,а первая ее часть.
Вобщем так - есть таблица сотрудников с временем их входов и выходов.Я хочу по каждому сотруднику посчитать общее время работы. Для этого нужно идти по этой таблице и ( как я хочу решить эту задачу), формировать массив типа (сотрудник и его текущее время). Где текущее время будет всегда вычисляться как разность следущего и предыдущего. Поэтому пришла мысль создать двумерный массив, и зполнить его только разными сотрудниками..а потом по каждому посчитать время..
0
|
6945 / 2849 / 549
Регистрация: 19.10.2012
Сообщений: 8,724
|
||||||
29.10.2012, 10:23 | 10 | |||||
Сотрудников в словарь, каждому в item массив на 2 элемента. В первом храним последнее время, во втором собираем общее время. Чуть есть морока при выгрузке (неоптимально), поэтому проще (но чуть расточительнее, хотя Вам вероятно известно общее количество сотрудников? Можете накинуть ещё 10% запаса) создать массив в 2 столбца и собирать время и время туда, а в словаре хранить номер строки каждого сотрудника.
Добавлено через 8 минут Вернее массив нужно на 4 столбца - где-то ещё нужно хранить метку вход/выход. Нужно ведь ещё отслеживать и это, а то может получиться, что человек пришёл, потом снова пришёл, потом пару раз подряд вышел... И вся Ваша бухгалтерия рухнет. Даже не 4, а 5 - в пятом столбце записать, в каком месте обнаружен косяк, чтоб потом вручную с ним разбираться. Или у Вас таблица, где вход и выход записаны рядом в одной строке, и такие косяки уже убраны до обработки? Нам неведомо... Добавлено через 9 часов 34 минуты Хотя если уникальных не десятки тысяч - то можно и Redim Preseve использовать, пусть будет массив в 4-5 строк с изменяемой шириной. Его ведь потом всегда в конце можно повернуть, если нужно выгружать на лист. Ну а если выгружать не нужно - то и так можно использовать, какая разница... А вообще я Redim Preseve избегаю, т.к. бестолковая работа по перекладыванию по многу раз из одного массива в другой как-то подспудно напрягает Тормознутая это штука при большом количестве циклов и нарастающем размере массива...
0
|
29.10.2012, 10:23 | |
29.10.2012, 10:23 | |
Помогаю со студенческими работами здесь
10
Как создать двумерный динамический массив Как реализовать двумерный динамический массив? Как создать динамический двумерный массив Как объявить двумерный динамический массив Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |