Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: задание значений массива табличным способом Добавлено: 03.08.04 11:19  

Автор вопроса:  Djoni
Народ, как в VB6 можно задать массив, табличным способом, например как в С int[n]={1,2,...}, я посмотрел MSDN для VB.NET там так:
 Private a As Integer() = { 0, 2, 4, 6, 8 }, но в VB6 это не работает,или в в VB6 только так а(1)=...; а(2)=... ?

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 03.08.04 11:24
да, инициализация массива т.о. не предусмотрена в VB6, так что остается один спооб...

Ответить

Номер ответа: 2
Автор ответа:
 Djoni



Вопросов: 6
Ответов: 35
 Профиль | | #2 Добавлено: 03.08.04 11:28
sne, спасибо за ответ, очень жаль, что так нельзя, а то у меня много табличных данных, набивать долго, да и нечитабельно будет

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 03.08.04 16:02
Variant - можно
dim a()
a()=array(1,2,3,4,5,4,3,2,1)

Ответить

Номер ответа: 4
Автор ответа:
 Djoni



Вопросов: 6
Ответов: 35
 Профиль | | #4 Добавлено: 04.08.04 09:34
Sharp, спасибо, но у меня один массив стринговый, придется последовательно вбивать

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 05.08.04 01:19
for i=0 to ubound(b)
b(i)=cstr(a(i))
next
:)

Ответить

Номер ответа: 6
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #6
Добавлено: 05.08.04 01:32
медленно и не оправдано...

Ответить

Номер ответа: 7
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #7
Добавлено: 05.08.04 01:37
 Переработал код Sharp'а

 ;Dim a(), b() As String
a() = Array(1, 2, 3, 4, 5, 4, 3, 2, 1)
 ReDim b(UBound(a))
For i = 0 To UBound(a)
 b(i) = a(i)
Next
 Erase a

 У VB по умолчанию тип Variant. По этому все операции адаптированы под него. Не хочешь придерживаться правил - шевели извилиной.

Ответить

Номер ответа: 8
Автор ответа:
 Djoni



Вопросов: 6
Ответов: 35
 Профиль | | #8 Добавлено: 05.08.04 09:45
Ребята, дело в том, что мне не число надо перевести в строку и обратно, а сделать преобразование текстового шестнадцатеричного например "00","01",... "0А",... в настоящий эквивалент шестнадцатеричного, 0х00, 0х01,... 0х0А,... и я решил сделать преобразование через таблицу, хотя может я и не прав может, как-то еще можно, но я не нашел иного способа, если знаете, подскажите.
А вообще ситуация у меня такая: VB собирает данные и заносит в базу, далее передает данные(через файл) проге на С, та считает и выдает коэффициенты(опять же через файл), но!!! Файл текстовый и в шестнадцатеричной системе числа тяжело передавать нормальным образом, нужен двоичный, я вот даже думаю сегодня этим заняться(для этого спрошу на форуме отдельной темой). Если у кого есть какие-либо идеи по обмену между прогами и работе с двоичными файлами-пишите, народ вы грамотный можете толковое посоветовать.

Ответить

Номер ответа: 9
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #9
Добавлено: 05.08.04 11:54
ну тогда делай так .. и забудь про таблицу...

Dim test as byte
test = val("&H" & "0A";)
будет тебе перменная test содержать число 10 +)
вместо "0А" подставляй своё значение строковой переменной....

Ответить

Номер ответа: 10
Автор ответа:
 Djoni



Вопросов: 6
Ответов: 35
 Профиль | | #10 Добавлено: 05.08.04 12:14
Fallout, спасибо, а я считал, что ф-ция Val приводит к типу double, ну и решил, что это не будет работать...

Ответить

Номер ответа: 11
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #11
Добавлено: 05.08.04 14:49
В VB с типами совсем хорошо жить... несоответствия возникают только при критических ошибках :)
Что несомненно ускоряет создание программы :)

Ответить

Номер ответа: 12
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #12
Добавлено: 05.08.04 16:06
А если любишь извращения, то можно так:
a(asc("1";))=1
...
a(asc("F";))=15
А потом просто
for i=len(h) to 1 step -1
res=res+a(asc(mid(h,i,1)))*16^(len(h)-i)
next
Правда, VBшный способ быстрее раз в 7...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам