假设在一个文件夹内有很多个RTF文件,如何快速地把包含特定字符串的文件找出来?
难道要一个个的读入RichTextBox再慢慢的找?
难道要一个个的读入RichTextBox再慢慢的找?
解决方案 »
- 区域截图(不用剪贴板)
- VB读ini文件时,如何在ini文件中实现换行
- 新手弱弱请教excel-vba的简单问题!
- 关于函数返回值
- 请教关于改变另一个窗口的数据集的问题
- 老问题捆饶很久请帮忙,如何得到TEXTBOX光标所对应的X,Y坐标
- VB 如何自动点击网页上的按钮?
- VB+SQL Server, 如何实现记录用户的操作?请看详情,高分相赠!
- 150分-<<=------------*-*-*-*-*-*-解决我内存溢出的问题!!!
- 请问如何在form_load中将treeview展开
- 请问在DataReport中怎样使用Group Footer(section)
- 如何在vb里用sql语句的update语句修给sql server数据库??急!!
Dim Str As String, dir As String
Str = "aaa"
dir = "c:\*.rtf"
Shell "cmd /c findstr /m " & Chr(34) & Str & Chr(34) & " " & dir & " >>c:\1.txt"
End SubPrivate Sub Command2_Click()
Dim r As String
Open "c:\1.txt" For Input As #1
Do While Not EOF(1)
Input #1, r
Debug.Print r
Loop
Close
Kill "c:\1.txt"
End Sub
Option Explicit
'没加错误处理,自己加吧
'自定义过程getfiles
'功能,从文件夹mfolder中,查找包含findstr字串的文件,将文件名显示在listbox中
Private Sub getfiles(ByVal mfolder As String, ByVal findstr As String)
List1.Clear
Dim myfilelist As FileListBox
Set myfilelist = Controls.Add("VB.filelistbox", "myfilelist")
myfilelist.Path = mfolder
myfilelist.Pattern = "*.rtf"
Dim i As Long, filename As String
Dim s As String
Dim arrtemp As Variant
If Right(mfolder, 1) <> "\" Then
mfolder = mfolder + "\"
End If
For i = 0 To myfilelist.ListCount - 1
filename = mfolder + myfilelist.List(i)
Me.RichTextBox1.LoadFile filename
s = Me.RichTextBox1.Text
arrtemp = Split(s, findstr)
If UBound(arrtemp) > 0 Then
List1.AddItem filename
End If
Next
Set myfilelist = Nothing
End SubPrivate Sub Command1_Click()
getfiles "c:\mc\", "mc"
End Sub
一开始,我曾考虑调用windows的查找文件对话框,但是,我很快发现windows的查找文件对话框可能实现不了楼主的要求如果,想调用windows的查找文件对话框的话,可以参考:用四种不同的方法来显示文件查找对话框
http://www0.ccidnet.com/tech/msrc/2000/05/25/58_760.html
其实也可以想办法把.rtf文件转换成纯文本格式,但效率又是个问题。 :(
-------------------------------------------------------------
是我说错,应该是RTF文件中的汉字是内码,直接打开看不到汉字。