找回密码
 加入
搜索
查看: 10683|回复: 8

[AU3基础] 怎样将逐行读到的文本文件信息在读取完毕后全部输出到label上进行显示

  [复制链接]
发表于 2013-8-10 15:46:52 | 显示全部楼层 |阅读模式
需求是这样:从日志文件中逐行读取日志信息,然后将所有读到的信息都显示在label上,要求能换行
如果有高手能把整个代码附上最好,如果不行就告诉我用什么函数,我自己可以研究的,先谢过了!
发表于 2013-8-10 21:20:05 | 显示全部楼层
本帖最后由 fangbaiyu 于 2013-8-10 21:21 编辑

具体的不知道怎么弄  不过有个用户自定义函数"时间日志管理"
LZ可以自己研究研究
Label的不会,Edit的照着例子弄了个
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EventLog.au3>

#region
Global $hMainForm = GUICreate("日志", 801, 601, 192, 114)
Global $Group1 = GUICtrlCreateGroup("应用程序", 8, 8, 250, 580)
Global $gu_nEdit1 = GUICtrlCreateEdit("", 16, 32, 230, 550)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $Group2 = GUICtrlCreateGroup("安全性", 272, 8, 250, 580)
Global $gu_nEdit2 = GUICtrlCreateEdit("", 280, 32, 230, 550)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Global $Group3 = GUICtrlCreateGroup("系统", 536, 8, 250, 580)
Global $gu_nEdit3 = GUICtrlCreateEdit("", 544, 32, 230, 550)
GUICtrlCreateGroup("", -99, -99, 1, 1)
#endregion


_Main()
Exit

Func _Main()
        GUISetState(@SW_SHOW)

        _EventReadApp()
        _EventReadSec()
        _EventReadSys()

        While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                        Case $GUI_EVENT_CLOSE
                                Exit

                EndSwitch
        WEnd
        GUIDelete()
EndFunc

Func _EventReadApp()
        _EventRead("", "Application", True, False, $gu_nEdit1)
EndFunc

Func _EventReadSec()
        _EventRead("", "Security", True, False, $gu_nEdit2)
EndFunc

Func _EventReadSys()
        _EventRead("", "System", True, False, $gu_nEdit3)
EndFunc

Func _EventRead($sServerName, $sSourceName, $fRead, $fForward, $nEdit)
        Local $i
        Local $hEventLog = _EventLog__Open($sServerName, $sSourceName)
        Local $iCounts = _EventLog__Count($hEventLog)
        For $i = 1 To $iCounts Step 1
                $aEvent = _EventLog__Read($hEventLog, $fRead, $fForward, $i)
                _EditWrite($nEdit, "结果 ............: " & $aEvent[0])
                _EditWrite($nEdit, "记录数 .....: " & $aEvent[1])
                _EditWrite($nEdit, "项目提交的日期 .........: " & $aEvent[2] & " " & $aEvent[3])
                _EditWrite($nEdit, "项目被接收并被写入日志的日期 .........: " & $aEvent[4] & " " & $aEvent[5])
                _EditWrite($nEdit, "事件标识 ..........: " & $aEvent[6])
                _EditWrite($nEdit, "事件类型 ..............: " & $aEvent[7])
                _EditWrite($nEdit, "事件类型字符串 ..............: " & $aEvent[8])
                _EditWrite($nEdit, "事件科目 ..........: " & $aEvent[9])
                _EditWrite($nEdit, "事件来源 ............: " & $aEvent[10])
                _EditWrite($nEdit, "计算机名 ..........: " & $aEvent[11])
                _EditWrite($nEdit, "用户名 ..........: " & $aEvent[12])
                _EditWrite($nEdit, "事件描述 .......: " & $aEvent[13])
                _EditWrite($nEdit, @CRLF)
        Next
        _EventLog__Close($hEventLog)
EndFunc

Func _EditWrite($nEdit, $sMessage)
        GUICtrlSetData($nEdit, $sMessage & @CRLF, 1)
EndFunc
发表于 2013-8-11 09:43:55 | 显示全部楼层
改成多线程更好哈。。
发表于 2013-8-11 10:28:18 | 显示全部楼层
,这个应该很简单的
发表于 2013-8-11 10:31:49 | 显示全部楼层
ControlSetText ( "title", "text", controlID, "new text" [, flag] )
controlid 为你的lableID,newtext 为管理日志中的值
 楼主| 发表于 2013-8-12 23:39:28 | 显示全部楼层
回复 2# fangbaiyu
多谢大侠,可能是我没说清,我要读取的日志不是系统日志,是我一个软件生成的日志,但是非常感谢贴了代码供我参考,可能label确实应该改成edit,这样输出的内容还可以进行下一步操作
再次感谢!
 楼主| 发表于 2013-8-12 23:40:25 | 显示全部楼层
回复 3# menfan1
。。。。。这个要多线程么,求教啊
 楼主| 发表于 2013-8-12 23:42:16 | 显示全部楼层
回复 5# runanchor
多谢大侠,我决定把实现从label改成edit了,明天班上就闹起
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 20:35 , Processed in 0.078124 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表