Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Подскажите, пжл, как создать двухмерный массив?

248
24 июля 2009 года
Dmitry2064
590 / / 06.12.2006
Есть текс такого вида:
Иванов Николай  12, 14, 16
Петров Фаддей  7, 10
Сидоров Александр 12, 14, 16


Хочется в переменной увидеть аналогичную матрицу. Т.е. первое значение переменной состоит из 4 элементов (1-й эл-т - фамилия-имя, остальные элементы нормера страниц), второе значение из 3 элементов (фамилия-имя + остальные элементы номера страниц) и т.д.

Не хватает ума сообразить, как сформировать такой двухмерный массив.

P.S. Допустим цифры отделены от фамилий-имен знаком табуляции (если это нужно). Т.е. по знаку табуляции можно отличить первый элемент от остальных
7
24 июля 2009 года
@pixo $oft
3.4K / / 20.09.2006
Вы имеете ввиду,что первые 2 элемента фиксированы(фамилия,имя),а вот номера страниц должны быть переменного размера(т.е. 2 элемента,3 или более?
Если да,то как-то так:[Highlight=VB]Private Type TestType
Surn As String
Name As String
Numbers() As Integer
End Type
Private A(N) As TestType[/Highlight]Чтобы потом пихнуть в параметр Numbers переменное число номеров страниц,в коде пишете[Highlight=VB]ReDim A(I).Data(M)[/Highlight]где I–Iй элемент массива,M–число номеров страниц

Надеюсь,правильно понял вас,а вы–меня:)
248
25 июля 2009 года
Dmitry2064
590 / / 06.12.2006
Вы меня поняли правильно. А вот мне ответ без стакана не переварить.
Я думал, что будет что-то типа
for j= 1 to..
for k = 1 to...

Т.е. какое-то матричное заполнение переменной - строчка за строчкой...
А с типом данных я пока не сталкивался. И, кроме того, для такого типа данных не должно быть запятых между элементами строки?
Вобщем надо еще подумать. Или обрабатывать данные построчно, т.е. содавать массивную переменную по текущей строке, потом в нее же записывать данные по второй строке?
Попробую поломаться... (в смысле подумать).
7
25 июля 2009 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: Dmitry2064
Т.е. какое-то матричное заполнение переменной - строчка за строчкой...
А с типом данных я пока не сталкивался. И, кроме того, для такого типа данных не должно быть запятых между элементами строки?
Вобщем надо еще подумать. Или обрабатывать данные построчно, т.е. содавать массивную переменную по текущей строке, потом в нее же записывать данные по второй строке?

Это как пожелаете,хотя я показал
Можно или каждое число пихать в массив Numbers(тогда придётся парсить строки "12,14,16","7,10","12,14,16" и делать массив переменной длины),или просто сделать строковую переменную Numbers(тогда не потребуется динамический массив,а парсинг строки будет выполняться далее по программе)

Кхм…вот так-то всё просто:)

248
26 июля 2009 года
Dmitry2064
590 / / 06.12.2006
Цитата: @pixo $oft
Это как пожелаете,хотя я показал
Можно или каждое число пихать в массив Numbers(тогда придётся парсить строки "12,14,16","7,10","12,14,16" и делать массив переменной длины),или просто сделать строковую переменную Numbers(тогда не потребуется динамический массив,а парсинг строки будет выполняться далее по программе)

Кхм…вот так-то всё просто:)



Кому просто, кому и нет ;))
В любом случае надо будет разобраться.

Спасибо за подсказку.

7
26 июля 2009 года
@pixo $oft
3.4K / / 20.09.2006
Ды не за что:) Надо будет–обращайся,поможем,чем сможем (=
А вообще,конкретная реализация зависит от задачи.Я тебе дал 2 варианта–выбирай любой
405
29 июля 2009 года
Dmitrii
554 / / 16.12.2004
Цитата: Dmitry2064
Есть текс такого вида:
Иванов Николай  12, 14, 16
Петров Фаддей  7, 10
Сидоров Александр 12, 14, 16


Хочется в переменной увидеть аналогичную матрицу. Т.е. первое значение переменной состоит из 4 элементов (1-й эл-т - фамилия-имя, остальные элементы нормера страниц), второе значение из 3 элементов (фамилия-имя + остальные элементы номера страниц) и т.д.

Не хватает ума сообразить, как сформировать такой двухмерный массив.

P.S. Допустим цифры отделены от фамилий-имен знаком табуляции (если это нужно). Т.е. по знаку табуляции можно отличить первый элемент от остальных


Думается, что наиболее удобный инструмент для решения такой задачи - объект Dictionary (поищите на форуме соответствующие темы).
Значением ключа записи может служить фамилия-имя, значением элемента - строка (или массив) с набором номеров страниц.
По сути вместо массива вы получаете подобие коллекции со всеми вытекающими преимуществами:
- простой и очень быстрый поиск записи по ключу;
- простые процедуры добавления/удаления записи без необходимости следить за "размерностью" объекта;
- возможность (при необходмости) получить и набор ключей, и набор соответствующих им элементов в виде массивов.
Кроме того, этот способ годится для использования и в программах, и в макросах, и в сценариях.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог