
vb如何判断文本文档中某一行字符串所在行数并获取
比如在日记.txt中有以下数据:日期:2014-01-011.数据2.数据3.数据日期:2014-01-021.数据2.数据日期:2014-01-031.数据2.数据3....
比如在日记.txt中有以下数据:
日期:2014-01-01
1.数据
2.数据
3.数据
日期:2014-01-02
1.数据
2.数据
日期:2014-01-03
1.数据
2.数据
3.数据
4.数据
。。。。。。
这个日期是不断增加的,我怎么才能得到最后一天的日期呢 展开
日期:2014-01-01
1.数据
2.数据
3.数据
日期:2014-01-02
1.数据
2.数据
日期:2014-01-03
1.数据
2.数据
3.数据
4.数据
。。。。。。
这个日期是不断增加的,我怎么才能得到最后一天的日期呢 展开
2个回答
展开全部
示例附件中,日记文件放在C:\如在其它位置自行修改代码
Private Sub Command1_Click()
Dim h As Long, LTxt As String, spstr As Variant, MaxDate As Date, FindLine As Long
h = FreeFile
Dim n As Long, tmp As Date
Open "c:\日记.txt" For Input As h
Do While Not EOF(h)
Line Input #h, LTxt
n = n + 1
spstr = Split(LTxt, ":")
If UBound(spstr) = 1 Then
If Trim(spstr(0)) = "日期" Then
If IsDate(spstr(1)) Then
tmp = CDate(spstr(1))
If tmp > MaxDate Then MaxDate = tmp: FindLine = n
End If
End If
End If
Loop
Close
If FindLine = 0 Then
MsgBox "未找到存在日期的行"
Else
MsgBox "找到最后的日期:" & MaxDate & " 在文件第 " & FindLine & " 行"
End If
End Sub
追问
这个是有序的,如果日期乱了我想找最后一条数据的日期可以吗?
追答
都可以,不过不知道你是找文件尾最后一个日期呢,还是找最大一个日期,我上面的代码是找最大日期的,乱序也没问题,只要日期的行格式为 :日期:xxxx-xx-xx 格式 ,如果找文件中最后一个日期:把下面这两行
tmp = CDate(spstr(1))
If tmp > MaxDate Then MaxDate = tmp: FindLine = n
改为:
MaxDate = CDate(spstr(1)):FindLine = n
就好
2021-07-06
展开全部
Private Sub Command1_Click()Dim h As Long, LTxt As String, spstr As Variant, MaxDate As Date, FindLine As Longh = FreeFileDim n As Long, tmp As DateOpen "c:\日记.txt" For Input As hDo While Not EOF(h) Line Input #h, LTxt n = n + 1 spstr = Split(LTxt, ":") If UBound(spstr) = 1 Then If Trim(spstr(0)) = "日期" Then If IsDate(spstr(1)) Then tmp = CDate(spstr(1)) If tmp > MaxDate Then MaxDate = tmp: FindLine = n End If End If End IfLoopClose hIf FindLine = 0 Then MsgBox "未找到存在日期的行"Else MsgBox "找到最后的日期:" & MaxDate & " 在文件第 " & FindLine & " 行"End IfEnd Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询