Объявление массива в модуле

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Cold_Almaty
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.06.2007 (Чт) 12:07

Объявление массива в модуле

Сообщение Cold_Almaty » 08.08.2007 (Ср) 14:26

Здравствуйте!!!
Помогите пожалуйста!

Если вот так, то всё замечательно. Всё работает!!!!

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ArrNames(0 To 2) As String
ArrNames(0) = "Name1"
ArrNames(1) = "Name2"
ArrNames(2) = "Name3"
Dim i As Short
For i = 1 To 3
MsgBox(ArrNames(i - 1))
Next i
End Sub

Только на самом деле элементов массива не три, а несколько десятков. И, чтобы не делать код громоздким, решил объявить массив в модуле. Не тут-то было. Такая форма записи не подходит. Точнее массив я объявил:
Public ArrNames(0 To 2) As String
а вот с элементами оказалось сложнее. Зделал вот так:

Module NetFiles
Public ArrNames(0 To 2) As String
Function ANames() As String
ArrNames(0) = "cashtest"
ANames = ArrNames(0)
ArrNames(1) = "cshtest"
ANames = ArrNames1)
ArrNames(2) = "termtest"
ANames = ArrNames(2)
End Function
End Module

И соответственно в коде формы:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim ArrNames(0 To 2) As String
'ArrNames(0) = "Name1"
' ArrNames(1) = "Name2"
' ArrNames(2) = "Name3"
Dim i As Short
For i = 1 To 3
MsgBox(ANames(ArrNames(i - 1)))
Next i
End Sub

При выполнении возникает исключение "Conversion from string "cashtest" to type 'Integer' is not valid."

Подскажите, что делать? Как быть? ПОЖАЛУЙСТАААААА

zHackLeX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 23.10.2003 (Чт) 21:08

Сообщение zHackLeX » 08.08.2007 (Ср) 14:58

Мдя...
Слуш, напиши толком - что НУЖНО сделать?
А то, глядя на написанное...
Функция ANames заполняет массив ArrNames
строчками, плюс два присвоения не в тему,
ANames по ходу выполнения процедуры последовательно
принимает значения "cashtest","cshtest","termtest"... не пойму
зачем первые два присвоения...
ну это ладно, дальше

MsgBox(ANames(ArrNames(i - 1)))

вообще вогнал меня в ступор... как видно, ArrNames(i-1) по
очереди будет "cashtest","cshtest","termtest", что, само собой,
не есть индекс, по которому можно обратиться к конкретному
символу строки "termtest", НЕИЗМЕННО возвращаемой функцией
ANames....

Короче, толково напиши, что нужно, как пытаешься решить,
и что не получается...
There is no knowledge that is not power...

X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят? :)

Cold_Almaty
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 28.06.2007 (Чт) 12:07

Сообщение Cold_Almaty » 08.08.2007 (Ср) 15:18

Проблема решена. :D
Огромное спасибо откликнувшемся!!!


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 113

    TopList