请教文本搜索的方法[已解决]
本帖最后由 512guy 于 2011-5-17 16:27 编辑最近一直有一个想法,但是没有找到合理的方法!这里想请教一下达人:
比如在某一个文件夹中有一个log文件,TXT格式的;我就想如何在不打开这个文本文件的情况下,搜索指定的内容,如果存在返回True,否则返回Flase.
不知道是否有达人了解过这样的方法,请指教!等。。。 不打开怎么搜。。。
就算你用 FileRead ( "文件句柄/文件名" [, 数量] )一样要打开
StringInStr ( FileRead ( "文件句柄/文件名" [, 数量] ) ,"子字符串" [, 区分大小写 [, 出现次序 [, 开始 [, 数量]]]] ) 你的意思是静默吗?(就是用户看不见)
如果 是 那用命令就可以了
如果 不是 那你能告送我你要干什么事情吗?不打开一个文件而知道文件内容,据我所知只能做索引。 请教楼上的!命令如何做?可否给一个简单例子 ! $file = FileOpen("123.txt", 0)
; 检查文件是否正常打开
If $file = -1 Then
MsgBox(0, "错误", "无法打开目标文件。")
Exit
EndIf
; 每次读取1个字符直到文件结尾(EOF,End-Of-File) 为止
$chars = FileRead($file)
MsgBox(0, "读到的字符:", $chars)
$result = StringInStr($chars, "9");你要搜索的信息填在这里哦
MsgBox(0, "123.txt文档中是否有你要搜索的信息,0就是没有", $result)
FileClose($file) 学习学习!! 本帖最后由 netegg 于 2011-5-12 01:34 编辑
_filereadtoarray好像不用打开文件(或者就是函数内部处理了), 搜索内容直接用_arraysearch Func _FileReadToArray($sFilePath, ByRef $aArray)
Local $hFile = FileOpen($sFilePath, $FO_READ)
If $hFile = -1 Then Return SetError(1, 0, 0);; unable to open the file
;; Read the file and remove any trailing white spaces
Local $aFile = FileRead($hFile, FileGetSize($sFilePath))
;~ $aFile = StringStripWS($aFile, 2)
; remove last line separator if any at the end of the file
If StringRight($aFile, 1) = @LF Then $aFile = StringTrimRight($aFile, 1)
If StringRight($aFile, 1) = @CR Then $aFile = StringTrimRight($aFile, 1)
FileClose($hFile)
If StringInStr($aFile, @LF) Then
$aArray = StringSplit(StringStripCR($aFile), @LF)
ElseIf StringInStr($aFile, @CR) Then ;; @LF does not exist so split on the @CR
$aArray = StringSplit($aFile, @CR)
Else ;; unable to split the file
If StringLen($aFile) Then
Dim $aArray =
Else
Return SetError(2, 0, 0)
EndIf
EndIf
Return 1
EndFunc ;==>_FileReadToArray用打开的... 回复 8# Ziya
嗯,回的时候没看源代码,所以才说可能内部处理了 嗯,其实我就是好奇真有可能"不打开文件"么... 回复 10# Ziya
用fileread有打开和不打开一说吗? 回复 1# 512guy
都没有打开文件,你搜索什么啊??里面有什么内容都不知道,怎么比较?不打开和没有看见是两回事哦~~ 楼上说得对 经过研究,我已经找到解决方法了,分享如下:
通过_FileReadToArray 将文本文件中的一行行内容付给一个数组;在使用StringInStr遍历每一个数组。 经过研究,我已经找到解决方法了,分享如下:
通过_FileReadToArray 将文本文件中的一行行内容付给一个数组;在使用StringInStr遍历每一个数组。
页:
[1]
2