'文件读入
'Private Sub Command5_Click()
Dim x1() As String, y1() As String, z1() As StringDim a1 As Double, b1 As Double, i As Integer, r As Integer, length As Integer, str As String
a1 = Val(Text4.Text)
b1 = Val(Text5.Text)
Open "C:\Users\Administrator\Desktop\坐标数据.txt" For Input As #1i = 1
Do While Not EOF(1)Line Input #1, str
x1(1) = Split(str, ",")
y1(1) = Split(str, ",")
z1(1) = Split(str, ",") & vbCrLf
i = i + 1LoopClose #1
length = UBound(x1) - LBound(x1) + 1r = 0
While (i < length)
Call pl_DDZB_TO_KJZB(Val(x1(r)), Val(y1(r)), Val(z1(r)), a1, b1)
Wend
End Sub

解决方案 »

  1.   

    text文件类型
     x,y,z
     x,y,z
      

  2.   

    txt 拜托!江湖救急!
      

  3.   

    你的 x1 y1 z1 定义为不定数组,然后在还没有定义数组元素个数的时候就使用了 x1(1) 进行赋值。 数组还没初始化。
    还有你的循环里面 length连续赋值是干啥的? 
    还有r这个变量并未看到变化,可是你最后又用了x1(r)
    while(i<length)这个条件一旦满足,进入循环,目测就出不来了。
    幸好在前面就已经发生数组下标越界了,要不然你的程序就会进入后面的死循环。所以,建议你还是重新的捋一遍你的代码 单步跟踪一下,看看是不是都在你的预期之内
      

  4.   

    没有连续赋值吧! 那个不是循环里的啊 vb的动态数组要怎么初始话 大佬救命 我第一次用vb
      

  5.   

    没有连续赋值吧! 那个不是循环里的啊 vb的动态数组要怎么初始话 大佬救命 我第一次用vb
      

  6.   

    要不然你就 
    dim x1(n)  as string
    要不然就 
    dim x1() as string 
    redim x1(n)  
    While (i < length)
    Call pl_DDZB_TO_KJZB(Val(x1(r)), Val(y1(r)), Val(z1(r)), a1, b1)
    Wend这三行好好斟酌一下,除非你的i是可以在 pl_DDZB_TO_KJZB 里面被修改掉的。
      

  7.   

    改了一下,你看这样行不行:Private Sub Command5_Click()
        Dim a1 As Double
        a1 = Val(text4.Text)
        
        Dim b1 As Double
        b1 = Val(text5.Text)
        
        Open "C:\Users\Administrator\Desktop\坐标数据.txt" For Input As #1
        
        Dim i As Integer
        Do While Not EOF(1)
            Dim strLine As String
            Line Input #1, strLine
            
            Dim arrLine() As String
            arrLine = Split(strLine, ",")
            
            Call pl_DDZB_TO_KJZB(Val(arrLine(0)), Val(arrLine(1)), Val(arrLine(2)), a1, b1)
        Loop
        
        Close #1
    End Sub