faceyao 发表于 2009-7-8 23:13:28

这段代码哪里有误

本帖最后由 faceyao 于 2009-7-9 00:16 编辑

目的:2分钟后,作文增加了内容,要得出最后部分是增加了哪些内容Dim $hOutPut

$hSouce = ControlGetText("", "", "Edit1")

Sleep(120000)

$hTarget = ControlGetText("", "", "Edit1")


      Func _FileListCompare($hSouce,$hTarget,$hOutPut)
      $hLine_S = _FileCountLines($hSouce)
      $hCon_T = FileRead($hTarget)
      For $hSi = 1 To $hLine_S
                $hS_String = StringSplit(FileReadLine($hSouce,$hSi),"|")
                If Not StringInStr($hCon_T,$hS_String) Then
                        FileWriteLine($hOutPut,$hS_String)
                EndIf
      Next
      EndFunc


MsgBox(0, "",$hOutPut)这样运行后无效果,新增加的内容显示不出来,请问哪里写错了?

(以上代码参考了此udf 内容
http://www.autoitx.com/forum.php?mod=viewthread&tid=1776&highlight=%B2%BB%CD%AC)

大绯狼 发表于 2009-7-8 23:39:26

看到楼主的帖子就简单的写了下。。。。不知道是不是这个意思
#include <file.au3>
Dim $hOutPut
WinActivate("")
$before = ControlGetText("", "", "Edit1")

Sleep(5000)

$after = ControlGetText("", "", "Edit1")

_Compare($before, $after)

Func _Compare($hSouce, $hTarget)
        Select
                Case StringCompare($hSouce, $hTarget) > 0
                        MsgBox(0, 0, "减少了" & StringReplace($hSouce, $hTarget, ""))
                Case StringCompare($hSouce, $hTarget) < 0
                        MsgBox(0, 0, "增加了" & StringReplace($hTarget, $hSouce, ""))
                Case StringCompare($hSouce, $hTarget) = 0
                        MsgBox(0, 0, "没有增加内容")
        EndSelect
EndFunc   ;==>_Compare

faceyao 发表于 2009-7-9 00:05:00

2# 大绯狼

谢谢,请问& StringReplace($hSouce, $hTarget, "")这段代码是何意,这里的&是msgbox的还是StringReplace的?

大绯狼 发表于 2009-7-9 00:08:07

&是字符串连接符
StringReplace($hSouce, $hTarget, "")就是把前后2个字符串对比 取出不同的部分
按理说这么写是有问题的 我考虑也不怎么周全

faceyao 发表于 2009-7-9 00:16:07

4# 大绯狼


谢谢大绯狼 师兄,已解决
页: [1]
查看完整版本: 这段代码哪里有误