VB 数组赋值、定义。

我想定义一个动态二维数组A,5×n,即5列n行的数组。
并将下面这些数存入其中
1 0.467 0.467 0.467 90 90 90
1 0.468 0.468 0.468 90 90 90
1 0.469 0.469 0.469 90 90 90
1 0.47 0.47 0.47 90 90 90
1 0.471 0.471 0.471 90 90 90
1 0.472 0.472 0.472 90 90 90
1.57 0.287 0.287 0.45059 90 90 90
1.57 0.289 0.289 0.45373 90 90 90
1.57 0.291 0.291 0.45687 90 90 90
1.57 0.298 0.298 0.46786 90 90 90
1.57 0.3 0.3 0.471 90 90 90
1.57 0.302 0.302 0.47414 90 90 90
1.58 0.287 0.287 0.45346 90 90 90
1.58 0.289 0.289 0.45662 90 90 90
1.58 0.291 0.291 0.45978 90 90 90
1.58 0.298 0.298 0.47084 90 90 90
1.58 0.299 0.299 0.47242 90 90 90
1.58 0.3 0.3 0.474 90 90 90
1.58 0.302 0.302 0.47716 90 90 90
请问如何写代码?
写错了是6×n,即6列n行的数组。

数组必须先定义(声明),然后才能赋值。

下面全面讲解数组的相关知识:
数组的概念
1.引例
  求100个学生的平均成绩及超过平均成绩的人数。
  如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、……mark100。若用数组,可以只用一个来表示mark(1

To 100)。
2.基本概念
  数组:是同类型变量的一个有序的集合。
    如:A(1To 100),表示一个包含100个数组元素的名为A的数组。
  数组元素: 即数组中的变量。用下标表示数组中的各个元素。
 表示方法:数组名(P1,P2,……)
   其中P1、P2表示元素在数组中的排列位置,称为“下标”。
 如:A(3,2)代表二维数组A中第3行第2列上的那个元素。
  数组维数: 由数组元素中下标的个数决定,一个下标表示一维数组,二个下标表示二维数组。
   VB中有一维数组、二维数组、……最多60维数组。
  下标: 下标表示顺序号,每个数组有一个唯一的顺序号,下标不能超过数组声明时的上、下界范围。下标可以是整型的常数、变量、表达式,甚至又是一个数组元素。
     下标的取值范围是:下界 To 上界 ,缺省下界时,系统默认取0。
3.数组声明
 数组必须先声明后使用。声明数组就是让系统在内存中分配一个连续的区域,用来存储数组元素。
 声明内容:数组名、类型、维数、数组大小。
      一般情况下,数组中各元素类型必须相同,但若数组为Variant时,可包含不同类型的数据。
 静态数组:声明时确定了大小的数组。
 动态数组: 声明时没有给定数组大小(省略了括号中的下标),使用时需要用ReDim语句重新指出其大小。

静态数组及声明
1. 一维数组
静态一维数组的声明形式:
Dim 数组名(下标) [As 类型]
说明:(1)下标必须为常数,不可以为表达式或变量;
    (2)下标下界最小为-32768,最大上界为32767;省略下界,其默认值为为0,一维数组的大小为:上界-下界+1
    (3) 如果省略类型,则为变体型
例: (1) Dim A(10) As Integer
      声明了A是数组名、整型、一维数组、有11个元素,下标的范围是0~10。
   (2) Dim B(-3 To 5) As String*3
      声明了B是数组名、字符串型、一维数组、有9个元素,下标的范围是-3~5,每个元素最多存放3个字符。
2.多维数组
  静态多维数组的声明形式:
Dim 数组名(下标1[,下标2…]) [As 类型]
  说明: (1)下标个数决定数组的维数,最多60维。
      (2)每一维的大小=上界-下界+1;数组的大小=每一维大小的乘积。
  例:Dim C(-1To 5, 4) As Long
    声明了C是数组名、长整型、二维数组、第一维下标范围为-1~5,第二维下标的范围是0~4,占据7x 5个长整型变量的空间。
3.注意事项
  (1)在有些语言中,下界一般从1开始,为了便于使用,在VB的窗体层或标准模块层用Option Base n 语句可重新设定数组的下界,如Option Base 1。
  (2) 在数组声明中的下标关系到每一维的大小,是数组说明符,而在程序其他地方出现的下标为数组元素,两者写法相同,但意义不同。
  (3) 在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量。

动态数组及声明
1. 动态数组的建立与声明
  建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。语法是:
ReDim 数组名(下标1[,下标2…]) [As 类型]
  其中下标可以是常量,也可以是有了确定值的变量,类型可以省略,若不省略,必须与Dim中的声明语句保持一致。
  例: Dim D() As Single
     Sub Form_Load()
     ……
     ReDim D(4,6)
     ……
     End Sub
2.注意事项
  (1)在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量;
  (2)在过程中可以多次使用ReDim来改变数组的大小,也可改变数组的维数。
  (3)每次使用ReDim语句都会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据,但使用Preserve只能改变最后一维的大小,前面几维大小不能改变。

使用动态数组的优点是根据用户需要,有效地利用存储空间,它是在程序执行到ReDim语句时才分配存储单元,而静态数组是在程序编译时分配存储单元。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-02
Private Sub Command1_Click()
Dim A() As Single, n As Long
Open "e:\tmp\321.txt" For Input As #1   '文件名自己改
Do Until EOF(1)
    ReDim Preserve A(6, n)
    Input #1, A(0, n), A(1, n), A(2, n), A(3, n), A(4, n), A(5, n), A(6, n)
    n = n + 1
Loop
Close #1
Dim i As Integer, j As Integer
For j = 0 To UBound(A, 2)
    For i = 0 To UBound(A, 1)
        Print A(i, j),
    Next
    Print
Next
End Sub

必须保证文本文件中每行的列数都是相同的,而且不存在空行,否则会出错

追问

感谢还是,我想的是,把数值赋值给数组,也就是把这些数值写进代码,脱离TXT实现。可不可以实现?

非常感谢!


你可以参考了这个:

追答Private Sub Command1_Click()
Dim b As Variant, A() As Single
Dim i As Integer, j As Integer
b = Array( _
Array(1, 0.467, 0.467, 0.467, 90, 90, 90), _
Array(1, 0.468, 0.468, 0.468, 90, 90, 90), _
Array(1, 0.47, 0.47, 0.47, 90, 90, 90), _
Array(1.57, 0.287, 0.287, 0.45059, 90, 90, 90), _
Array(1.57, 0.302, 0.302, 0.47414, 90, 90, 90) _
)
ReDim A(UBound(b), 6)
For i = 0 To UBound(A, 1)
    For j = 0 To UBound(A, 2)
        A(i, j) = b(i)(j)
    Next
Next
End Sub

数据我只输入了几行,你自己补全

本回答被提问者采纳
相似回答