[已解决]一个log文件无法一行行读取出来
本帖最后由 boyhong 于 2012-6-14 09:41 编辑一个log文件无法一行行读取出来,我是用如下代码来读行。。
If FileExists(@ScriptDir&"\faultykeyboard.log") Then
Local $file = FileOpen(@ScriptDir&"\faultykeyboard.log",0)
If $file <> -1 Then
; 每次读取一行文本,直到文件结束.
For $i=1 To 10
Local $line = FileReadLine($file,$i)
If @error = -1 Then ExitLoop
MsgBox(0, "第"&$i&"行:", $line)
Next
FileClose($file)
EndIf
EndIf
为什么呢?我抱着试验的态度更改fileopen后的参数,看是否Unicode的原因,但不怎么懂,希望大家帮我分析一下,若能讲解一下就更是我等菜鸟之福了:
测试文件下载:http://pan.baidu.com/netdisk/singlepublic?fid=377820_692661576 Local $sFile = @ScriptDir & '\faultykeyboard.log'
If Not FileExists($sFile) Then Exit -1
Local $hfile = FileOpen($sFile, 32), $iL = 1, $line
While 1
$line = FileReadLine($hfile)
If @error = -1 Then ExitLoop
MsgBox(0, '第' & $iL & '行:', $line)
$iL += 1
WEnd
FileClose($hfile) 如果需要创建数组 则用正则更方便Local $sFile = @ScriptDir & '\faultykeyboard.log'
If Not FileExists($sFile) Then Exit -1
Local $hfile = FileOpen($sFile, 32)
Local $str = FileRead($hfile)
FileClose($hfile)
Local $aSR = StringRegExp($str, '\V+', 3), $iL
If @Error Then Exit -2
For $iL = 0 To UBound($aSR) - 1
MsgBox(0, '第' & $iL + 1 & '行:', $aSR[$iL])
Next 回复 1# boyhong
也可以这样读, 如果懒得多打一两行代码:
#include <file.au3>
Local $a
_FileReadToArray(@ScriptDir & '\faultykeyboard.log', $a)
If @error Then Exit MsgBox(16, 'Err', '读取文件内容失败!')
For $i = 1 To $a
MsgBox(0, '文件内容', '第 ' & $i & ' 行: ' & @CRLF & $a[$i])
Next 回复boyhong
也可以这样读, 如果懒得多打一两行代码:
user3000 发表于 2012-6-14 09:10 http://www.autoitx.com/images/common/back.gif
这个文件没有 BOM 标识,默认会以 ANSI 格式读取到错误的数据,所以这样是不行的。
页:
[1]