请教下  老出现  缺少分隔符的问题
 我用了分隔符的  
部分代码如下Dim line() As no
Dim freenum As Integer
Dim linenum As Integer
Dim str As String
linenum = 0
freenum = FreeFile
Open Text1.Text For Input As #freenum
Do While Not EOF(freenum)
Line Input #freenum, str
str = Trim(str)
If str <> "" Then
Dim data() As String
data = Split(str, vbTab)
 ReDim Preserve line(linenum + 1)
 line(linenum).name =data(0)
line(linenum).datas=data
line(linenum).leng =ubound(linenum)+1
linenum = linenum + 1
End If
Loop

解决方案 »

  1.   

    str 中有没有制表符vbTab? 如果没有,就会出现分隔符问题。
      

  2.   

    no 是定义的一个模块
    代码如下
    Public Type no
    name As String
    datas() As String
    leng As Integer
    End Type
      

  3.   

    哪句报错?
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  4.   

    有啊
    下面这个是我同学写的一个  
    '读取第一个文件
        Dim srcDatas() As LineData
        
        Dim str As String
        Dim lineNum As Integer
        Dim FreeNum As Integer
        FreeNum = FreeFile
        lineNum = 0
        Open srcFileText1.Text For Input As #FreeNum
            Do While Not EOF(FreeNum)
                Line Input #FreeNum, str
                str = Trim(str)
                If str <> "" Then
                    Dim LineData() As String
                    LineData = Split(str, vbTab)
                    ReDim Preserve srcDatas(lineNum + 1)
                    srcDatas(lineNum).name = LineData(0)
                    srcDatas(lineNum).data = LineData
                    srcDatas(lineNum).dataLength = UBound(LineData) + 1
                    lineNum = lineNum + 1
                End If
            Loop
        Close FreeNum他的可以运行 我们都是要打开同一个文件
    而且我写程序也是按他的思想来写的
    咋分隔符会出现问题呢?
      

  5.   

    [Quote=引用 4 楼 feiyun0112 的回复:]
    哪句报错?
     
    line(linenum).name =data(0) 
    line(linenum).datas=data 
    line(linenum).leng =ubound(linenum)+1 都有错误 提示缺少分隔符
      

  6.   

    在VB6.0里
    line(linenum).name =data(0) 
    line(linenum).datas=data 
    line(linenum).leng =ubound(linenum)+1 
    都是不合语法的
    另外LineData = Split(str, vbTab) 
    vbTab作分割符也有问题,执行vbTab产生的是一串空格
      

  7.   

    补充7楼的,
    Open Text1.Text For Input As #freenum 也不对,Text1.Text 是文本框内容,不是文件名,也会报错
      

  8.   

    text1.text 是被提前赋予一个路径的  
      

  9.   

    楼主:
      把你定义的变量 line 换成别的变量名!
      Line 是 VB 的关键字,你用 line 作变量名,是会有冲突的。
    Open Text1.Text For Input As #freenum 没有问题。
      

  10.   


    谢谢了 我是刚学  处于摸索当中但是我同学编写那个Dim LineData() As String 
                    LineData = Split(str, vbTab) 
                    ReDim Preserve srcDatas(lineNum + 1) 
                    srcDatas(lineNum).name = LineData(0) 
                    srcDatas(lineNum).data = LineData 
                    srcDatas(lineNum).dataLength = UBound(LineData) + 1 
    怎么可以执行呢??
      

  11.   

    这没有问题啊,
    LineData 跟 Line 是两回事嘛。
    你用 line1、line2、LineAbc等都可以,就是别用 Line 或 line 来作标识符。
    VB 中是不区别大小写的,line 和 Line 会被编译器看成相同的东西。
    所以 line 和关键字 Line 冲突了。