一组很长的数(700多个,在一个txt文件里),要赋给一个数组,整体赋值的格式是怎么样的?是a(0-700)=(5,8,3,……)吗?

解决方案 »

  1.   

    dim a() as long 
    dim s as string 
    dim t as long ...获取700个数到s,此时s="5,8,3,…"a=split(s,",")
    for t=0 to ubound(a)
      debug.print a(t),
    next5    8   3   ...
      

  2.   

    用split函数试试吧
    Split函数的参数为一个字符串、一个分隔符(可选)、返回的子字符串个数、以及比较方法。该函数返回一个基于零的(zero-based)数组,子字符串为数组元素。下面的代码将上例产生的字符串作为Split函数的参数,Split函数将恢复出一个数组。 Dim strTest As String
    Dim vntSplit As VariantstrTest = "1|2|3|4|5"
    vntSplit = Split(strTest, "|")
    MsgBox vntSplit(0)
      

  3.   

    谢谢楼上的回复,可能我的意思没说明白。我现在用到的是一个c的头文件,在这个头文件里有一个数组A(700)={0.1124,0.3265,……},700个数已经存好了,我现在的vb程序要用到这个数组,来进行一个计算,但是不知道怎么读取,就想直接把这组数拷进来赋给我定义的一个数组,应该不是上面的格式吧?
      

  4.   

    不同的时候要不一样的处理数据的,如果你的数据在txt文件里面是按 "," 或者 "|" 分割的话使用split是可以了,如果你的数据不是的话,是一行一个数据的话我想可以这样
      open "D:\txt.txt" for input as #1
       do while not eof(1)
         line input #1,str
         a(i) = val(str)
         i= i +1
      loop
       close #1
    你告诉我你用什么方式存储数据的?再具体分析怎么样读取文件,给数组赋值
      

  5.   

    zou19820704你好,我现在要用到的那组数是存在一个c的头文件里的,是这样存的:
     * D:\MATLAB6.5.1\extern\include\tmwtypes.h 
     */
    const int BL = 751;
    const long double B[751] = {
      -1.013673924802e-006,-2.258803187446e-005,-1.589547818038e-005,1.660993037745e-005,
      3.224853521096e-005,3.599892326701e-006,-3.647061462228e-005,-3.118014867772e-005,……
    而且数很多,700多个,不会读取,不知道怎么赋给我现在vb程序里的数组,不知道你有什么高见
      

  6.   

    手动把他复制到vb程序里面,
    改成:
    dim a() as double
    dim t as long 
    dim s as strings="-1.013673924802e-006,-2.258803187446e-005,-1.589547818038e-005,1.660993037745e-005,3.224853521096e-005,3.599892326701e-006,-3.647061462228e-005,-3.118014867772e-005"
    a()=split(s,",")不知道类型转换的时候会不会出错。,,会的话就的还用个string数组来中转
      

  7.   

    dim str as string
     dim StrVal as string
     dim Lng_s as long
     dim Lng_e as long
     dim s as long
      s= 1
    open " D:\MATLAB6.5.1\extern\include\tmwtypes.h" for binary as #1
       do while not eof(1)
         get #1,s,str
         if str = chr("{") then Lng_s = s
         if str = chr("}") then Lng_e = s
         s= seek(1)
      loop
     close #1   这里麻烦点容易理解先关闭再打开 s= Lng_s
    open " D:\MATLAB6.5.1\extern\include\tmwtypes.h" for binary as #2
           if s<= Lng_e then
            get #1,s,str
            StrVal= StrVal & Str
            s =seek(1)
           end if
    close #2
              
    dim Val() as string
     val= split(StrVal,",")数组val就是你要的值!!你看看是不是,或许有点字节偏差,你自己调试调试
      

  8.   

    if str = chr("{") then Lng_s = s
         if str = chr("}") then Lng_e = s
    有函数错误哦,
        if str = "{" then Lng_s = s
        if str = "}" then Lng_e = s
    请更正
      

  9.   

    多谢zou19820704,程序调通过了,但是运行就死机,我又单步调了一下,发现每次运行完s=seek(1)这句后,s的值都不变,而且每次获得的str都是“”,但是还是在循环,请问你知道可能是什么原因吗?
      

  10.   

    summer006你好,我要用的那个数组太长了,用你这种方式不行,每行都要加续行符,而且加了几行后就提示续行太多了,谢谢了
      

  11.   

    sorry ,你把哪个dim str as string
     改为dim str as string * 1
     呵呵,不好意思哦