请问Split的分隔符可以用变量吗?我是一个新手,正在自学着VB,今天遇着一个问题就是在txt文件中以当前日期为分隔符提取当前日期前面的字符,但不知道可不可以,请不吝赐教,感激不尽.
        Dim nFile As Integer
        Dim strTmp As String
        Dim arTmp() As String        
        Dim nFile As Integer
        Dim d As String
        Dim dn As String
        Dim p As String
        Dim Path As String
        On Error Resume Next
          d = Format(Now, "yyyy-m-d")
          dn = Format(Now, "yyyy_mm")
          Path = "D:\cm" & dn & ".txt"
          p = Path
          nFile = FreeFile
          Open p For Input As #nFile
          Do While Not EOF(nFile)
                Line Input #nFile, strTmp
                arTmp = Split(strTmp, "d")'分隔符想用上面的变量  d,就是当前日期
          Loop
          Close #nFile另,txt文件内容如下:
OK,张三,2009-2-6 9:16:55,2009-2-6
OK,李四,2009-2-7 22:47:37,2009-2-7
OK,王五,2009-2-7 23:25:35,2009-2-7
....
....
我希望是提取张三,李四,王五出来.

解决方案 »

  1.   

    arTmp = Split(strTmp, ",")(1)
      

  2.   

    直接写成  arTmp = Split(strTmp, d) 就行了
      

  3.   

    你的D是日期变量,你强行转换到字符型,做split,你得试,这二个字符格式不一定一样,就不一定成功
    另arTmp = Split(strTmp, "d")'分隔符想用上面的变量  d,就是当前日期---------这样是找字符d,不是变量d,楼上这样才是变量d
      

  4.   

    你最后的结果是在这个文件里提取 张三,李四,王五 吗?
    OK,张三,2009-2-6 9:16:55,2009-2-6 
    OK,李四,2009-2-7 22:47:37,2009-2-7 
    OK,王五,2009-2-7 23:25:35,2009-2-7 
    Private Sub Command1_Click()
    Dim strA As String
    Dim arr() As String
    Dim strFile As String
    Dim i, s As String
    Open "c:\1.txt" For Input As #1
     Do While Not (EOF(1))
      Line Input #1, strFile
    arr = Split(strFile, ",")
    Text1.Text = Text1.Text & arr(1) & vbCrLf
    Loop
    Close #1
    End Sub
      

  5.   

    同意楼上的, 实际上只要把每行按逗号为标志, 使用split函数解析出数组, 取其中的第二项即可
      

  6.   

    我想我说错了,我提取的内容是李四和王五,但张三是昨天的,我不提取,所以才要以日期为变量分隔
    OK,张三,2009-2-6 9:16:55,2009-2-6 
    OK,李四,2009-2-7 22:47:37,2009-2-7 
    OK,王五,2009-2-7 23:25:35,2009-2-7 
    .... 
    .... 
      

  7.   

    还有一个就是,txt文件内还不止这几行,因为这个txt文件是每天记录的,一个月一个文档,请问有没有什么好的方法可以提取当天的名字出来呢?
      

  8.   

    还有一个就是,txt文件内还不止这几行,因为这个txt文件是每天记录的,一个月一个文档,请问有没有什么好的方法可以提取当天的名字出来呢?
      

  9.   

    如果文件比较大可以会慢一点新建text1 ,text2,   text1 用来显示结果   text2用来输入要查找的日期  
    Private Sub Command1_Click()
    Dim strA As String
    Dim arr() As String
    Dim strFile As String
    Dim Cons As String
    Text1.Text = ""
    Cons = Text2.Text
    Open "c:\1.txt" For Input As #1
     Do While Not (EOF(1))
      Line Input #1, strFile
    arr = Split(strFile, ",")
    If Trim(Cons) = Trim(arr(3)) Then
    Text1.Text = Text1.Text & arr(1) & vbCrLf
    Else
    End If
    Loop
    Close #1
    End Sub
      

  10.   

    Private Sub Command1_Click()
    Dim strLine As String
    Dim strArr() As String
    Dim strToday As StringstrToday = Format(Date, "yyyy-m-d")
    List1.Clear
    Open "c:\1.txt" For Input As #1
    Do Until EOF(1)
        Line Input #1, strLine
        If InStr(strLine, strToday)
            strArr = Split(strLine, ",")
            If Ubound(strArr) Then  List1.AddItem strArr(1)
        End If       
    Loop
    Close #1
    End Sub
      

  11.   

    感谢各位大哥的支持,经过测试,of123大哥的代码已经编译成功,在这里谢谢了,goosen大哥的代码运行后没有反应,不知道是不是我搞错了,不过还是十分感谢各位!另外,of123大哥的代码有一个错误的地方:
    If InStr(strLine, strToday),后面写漏了一个Then,估计各位大哥都是就这样写出来的,并不需要像我这样上机测试,这点在下十分佩服,也是我努力的方向,再次谢谢大家了!
      

  12.   

    我的代码都是测试过的怎么会没有反应呢?你要在 text2 中输入日你要那天的日期才行啊   比如在text2中输入: 2009-2-6   那么这天的人名全都会显示在text1 中