比如我想取文件为类似于 MBA_T_ 20060625163000.TXT ,而且每十分钟生成一个新文件
 我想用取当前最新的文件,那么文件名该如何抓取?谢谢大家!!!如果哪位方便的话,最好可以写出代码来,我第一次接触VB,基本就是一个文盲。当然如果您提出思想或建议,也是非常好的。
--------------PS好像用DATA函数的时候,6月显示的6,而不是06?
还有就是 我想用计划任务来每十分钟 运行一次,好像要考虑到跨年月日的问题,不知道如何解决
再次谢谢大家

解决方案 »

  1.   

    用Now不可以么?然后你用Replace替换掉一些非法字符
    然后格式可以用Format函数,具体用法我都快忘了,你google一下吧
      

  2.   

    生成:
    Open myPath & "\MBA_T_" & Format(Now(), "yyyymmddHHnn00") & ".txt" For Output As #1
    '......
    Close #1读取:
    Dim tmpDate As Date, strFile As String, strTmp As String
    tmpDate = DateAdd("n", -10, Now())    '取 10 分钟前的时间
    strTmp = "MBA_T_" & Format(tmpDate, "yyyymmddHHnn00") & ".txt"
    strFile = Dir(myPath & "\MBA_T_*.*")Do Until strFile = ""
        If strFile > strTmp Then Goto GetIt
        strFile = Dir
    Loop
    Exit SubGetIt:
    Open myPath & "\" & strFile For Input As #1
    '......
    Close #1
      

  3.   

    恩恩,楼上考虑周全,连判断10分钟前的模糊都出来了。。
    文件名里最大的就可以啦啦,似乎不用比较。。
    另外呢,10分钟,这个,这个用TIMER控制的时候最多1分多点,楼主既然第一次接触,那我就班门弄斧了
    Dim mTimr As Long
    Private Sub Form_Load()
    Timer1.Interval = 60000
    End SubPrivate Sub Timer1_Timer()
    If mTimr = 9 Then
        mTimr = 0
        'MsgBox Now 这里就是每10分钟要干的事情喽
    Else
        mTimr = mTimr + 1
    End If
    End Sub嘎嘎,分一块沙发。。
      

  4.   

    用((DateTime.DatePart("n", Now) + 9) \ 10) * 10取出下次的整十分钟數
    命名的方法上面已經說的夠詳細了.
      

  5.   

    of123的代码已经处理了
    基本直接用就ok了
    还要怎么样
      

  6.   

    Option ExplicitPrivate Sub Command1_Click()
        If Command1.Tag = "" Then
            MsgBox "开始计时", vbInformation
            Timer1.Interval = 1000 '计时器每秒嘀嗒一次
            Timer1.Enabled = True
            Command1.Tag = "*"
        Else
            Timer1.Enabled = False
            Command1.Tag = ""
            MsgBox "计时器停止", vbInformation
        End If
    End SubPrivate Sub Command2_Click()
        MsgBox "最新的文件名是:" & GetNewestFileName
    End SubPrivate Sub Timer1_Timer()
        Dim i As Long
        Dim str As String
        Dim dt As Date
        dt = Now
        Label1 = Format(dt, "YYYY-MM-DD HH:NN:SS")    '━┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅━
        '判断是否整10分钟
        str = Format(dt, "YYYYMMDDHHNNSS")
        'If Right(str, 3) <> "000" Then Exit Sub '如果当前分钟不是10的倍数,退出不处理
       
        '━┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅━
        '生成文件
        str = "MBA_T_" & str & ".TXT"
        str = App.Path & "\" & str  '这里写你的文件路径
        Open str For Output As #1
        Write #1, "生成了文件:" & str
        Close #1
        
        '━┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅━
        '辅助验证
        On Error Resume Next
        Static Count As Long
        Count = Count + 1
        Label2 = Count & " : 生成了文件:" & str
    End Sub'━┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅━
    '获取最新的文件的文件名
    Private Function GetNewestFileName(Optional pPath As String) As String
        If pPath = "" Then pPath = App.Path
        
        Dim str As String
        str = "MBA_T_*.TXT"
        str = Dir(pPath & "\" & str) 'str为文件名
        If str = "" Then Exit Function  '如果没有文件,则返回空
        
        Do While (str <> "")
            Dim str2 As String
            str2 = Left(Right(str, 18), 14)
            str2 = Mid(str2, 5, 2) & "/" & Mid(str2, 7, 2) & "/" & Left(str2, 4) & " " & _
                   Mid(str2, 9, 2) & ":" & Mid(str2, 11, 2) & ":" & Right(str2, 2)
            
            Dim CurDate As Date
            Dim LastDate As Date
            CurDate = CDate(str2)
            
            If CurDate > LastDate Then
                GetNewestFileName = str
            End If
            str = Dir()
        Loop
    End Function
    '以上代码复制到Form1中,Form1放Command1,Command2两个按钮和Label1,Label2两个标签,再放一个Timer1计时器。测试通过。