Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Массив?????????? / 19 сообщений из 19, страница 1 из 1
25.01.2005, 17:08:10
    #32882982
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Всем привет!
Мне необходимо сохранять следующие данные в массив:


Town Name Des
Вена | бла-бла-бла | описание
Вена | бла1-бла1-бла1 | описание1
Вена | бла2-бла2-бла2 | описание2
Москва | 1бла-1бла-1бла | 1описание
Москва | 1бла1-1бла1-1бла1 | 1описание1
Москва | 1бла2-1бла2-1бла2 | 1описание2

и т д.

Плиз, подскажите какой массив создать?
И как это сделать?
...
Рейтинг: 0 / 0
25.01.2005, 17:22:30
    #32883031
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Я делаю следующим образом:
Код: plaintext
1.
2.
3.
4.
5.
Dim arrtosave() 
' Создаем массив данных для сохранения
Public Sub GenerateDataToSave(GeoName, Title, Description)
    ReDim Preserve arrtosave(bCounter)
    arrtosave() =  [GeoName, Title, Description]
End Sub

Выдается ошибка....
Подскажите, что тут не так?
...
Рейтинг: 0 / 0
25.01.2005, 17:32:35
    #32883066
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Код: plaintext
1.
2.
3.
4.
ReDim Preserve arrtosave(bCounter, 2 )
arrtosave(bCounter, 0 ) =  GeoName
arrtosave(bCounter, 1 ) =  Title
arrtosave(bCounter, 2 ) =  Description
Тут надо повнимательнее с нижней границей массива
и с bCounter
...
Рейтинг: 0 / 0
25.01.2005, 17:33:00
    #32883067
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Подскажите, что тут не так?IDE сама подскажет
(и тем самым избавит от потерь времени),
если в опциях редактора включить Require Variable Declaration
(да, впрочем, и все остальные на вкладке Editor)
...
Рейтинг: 0 / 0
25.01.2005, 18:03:56
    #32883137
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
А тут что не так:
Код: plaintext
Join(arrtosave, " ")
Опять выдает ошибку......
...
Рейтинг: 0 / 0
26.01.2005, 11:22:18
    #32884032
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Народ, плиз, подскажите каким образом мне объединить все данные подобного массива:
Код: plaintext
1.
2.
3.
ReDim Preserve arrtosave(bCounter, 2 )
arrtosave(bCounter, 0 ) =  GeoName
arrtosave(bCounter, 1 ) =  Title
arrtosave(bCounter, 2 ) =  Description
в одну строку
???????????????
...
Рейтинг: 0 / 0
26.01.2005, 11:50:05
    #32884135
Alviga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Это в модуле
Type My_Structure
Town as String,
NAme as String,
Des as String
End Type


Public Arr(5) as My_Structure
For i = 1 to 5
with arr(i)
.town = ""
.name = ""
.des = ""
end with
next i
...
Рейтинг: 0 / 0
26.01.2005, 12:46:11
    #32884356
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
А теперь почему-то выдается следующая ошибка при заполнении массива:
"Индекс выходит за пределы допустимого диапазона"

А код следующий:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public bCounter
Dim arrtosave() 

Public Sub GenerateData(GeoName, Title, Description)
  ReDim Preserve arrtosave(bCounter, 2 )
  arrtosave(bCounter, 0 ) =  GeoName
  arrtosave(bCounter, 1 ) =  Title
  arrtosave(bCounter, 2 ) =  Description
  bCounter=bCounter+ 1 
End Sub
...
Рейтинг: 0 / 0
26.01.2005, 12:54:26
    #32884400
JRM
JRM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Код: plaintext
arrtosave(bCounter- 1 , 0 ) =  GeoName
Массив начинается с нулевого элемента - ну и соответственно при размерности = bCounter элемент последний будет bCounter-1
...
Рейтинг: 0 / 0
26.01.2005, 13:09:00
    #32884465
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
И так выдает ту же самую ошибку с указанием на строку:
Код: plaintext
ReDim Preserve arrtosave(bCounter, 2 )
...
Рейтинг: 0 / 0
26.01.2005, 13:20:25
    #32884512
JRM
JRM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Тогда пойдем иначе - и даже знаю куда :)
Код: plaintext
1.
2.
3.
4.
5.
        ReDim Preserve arrtosave( 2 , bCounter)

        arrtosave( 0 , bCounter- 1 ) = GeoName
        arrtosave( 1 , bCounter- 1 ) = Title
        arrtosave( 2 , bCounter- 1 ) = Description
Вся заморочка в том, что позволяется менять только правую границу массива.
...
Рейтинг: 0 / 0
26.01.2005, 13:25:51
    #32884531
JRM
JRM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
И объявлять массив тогда стоит так:
Код: plaintext
1.
Dim arrtosave( 2 ,  1 )
...
Рейтинг: 0 / 0
26.01.2005, 13:36:21
    #32884591
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Все равно та же ошибка на bCounter=3 запарывается......
...
Рейтинг: 0 / 0
26.01.2005, 13:38:40
    #32884597
JRM
JRM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Можно еще разок полный код выложить процедуры? И с объявлением массива. Чтобы не путаться опять.
...
Рейтинг: 0 / 0
26.01.2005, 13:45:42
    #32884625
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
до вызова GenerateData bCounter= 0 
........
Public bCounter
Dim arrtosave( 2 ,  1 ) 
Public Sub GenerateData(GeoName, Title, Description)
  ReDim Preserve arrtosave( 2 , bCounter+ 1 )
  arrtosave( 0 , bCounter) = GeoName
  arrtosave( 1 , bCounter) = Title
  arrtosave( 2 , bCounter) = Description
  bCounter=bCounter+ 1 
End Sub
...
Рейтинг: 0 / 0
26.01.2005, 13:51:25
    #32884655
JRM
JRM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
проверил у себя так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    Public arrtosave( 2 ,  0 )
    Public bCounter

    ' Создаем массив данных для сохранения
    Public Sub GenerateDataToSave(ByVal GeoName, ByVal Title, ByVal Description)
        ReDim Preserve arrtosave( 2 , bCounter +  1 )
        arrtosave( 0 , bCounter) = GeoName
        arrtosave( 1 , bCounter) = Title
        arrtosave( 2 , bCounter) = Description
        bCounter = bCounter +  1 
    End Sub

    ' и в основном коде
    bCounter =  0 
    Dim i
    For i =  0  To  8 
        GenerateDataToSave("111", "ertert", "2345345")
    Next i
    For i =  0  To  8 
         MsgBox(i & vbCrLf & arrtosave( 1 , i))
    Next i
Работает как часы... Может искать надо уже в другом месте? Например - bCounter где-нить еще меняется...
...
Рейтинг: 0 / 0
26.01.2005, 16:06:02
    #32885127
kika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
JRM, спасибо огромное!!! Получилось....
А как мне очистить массив?
...
Рейтинг: 0 / 0
26.01.2005, 16:47:23
    #32885258
JRM
JRM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
Да не за что.

Очистить - ну скорее всего так:
Код: plaintext
1.
ReDim arrtosave( 2 ,  0 )
...
Рейтинг: 0 / 0
26.01.2005, 16:51:51
    #32885279
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массив??????????
kikaJRM, спасибо огромное!!! Получилось....
А как мне очистить массив?
Erase arr
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Массив?????????? / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]