前79行均为楼上兄弟的代码,作为一个字符串:
3mile 发表于 2010-8-2 16:06 http://www.autoitx.com/images/common/back.gif
为什么在中间每行前面都有一个 ' 怎么去掉呢? 这样应该可以理解了吧。
每行前面的 ‘ 号表示是字符串,再看行尾有连接符"_&"。就是把一个长字符串连接起来的意思。
#include <array.au3>
$Str = FileRead("换成你的程序文件.au3")
Local $var
$var_temp=StringRegExp($str,'\$\w*',3)
If Not @error Then $var_array=_ArrayUnique($var_temp)
For $i=1 To $var_array
$var&=$var_array[$i]&","
Next
MsgBox(0,'包含变量有:',"local "&StringLeft($var,StringLen($var)-1)) 我现在用这个办法解决由变量未声明的问题.
使用方法:在脚本中加入Opt("MustDeclareVars", 1).在将弹出的错误保存在一个TXT里面.在用下面的脚本调用.你就会得到一个另一个TXT然后你打开那个TXT就明白了.Dim $file
$file = FileOpen("D:\au3\进行\病房医生工作站\错误变量.au3")
;~ Dim $days
; 检查文件是否正常打开
If $file = -1 Then
MsgBox(0, "错误", "无法打开目标文件。")
Exit
EndIf
; 每次读取1行字符直到文件结尾(EOF,End-Of-File) 为止
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
$a = StringInStr($line, "可能未声明或者未创建")
if $a <> 0 then
$days = StringSplit($line, " ")
$file2 = FileOpen("D:\au3\进行\病房医生工作站\错误变量1.txt", 1)
FileWrite($file2, "dim "&$days& @CRLF)
FileClose($file2)
EndIf
Wend
FileClose($file)
1000行我想不都敢想呀!楼主真是高人!
{:face (301):} 貌似au3编辑器自带有这个功能 回复 20# auto
在哪? 回复 2# xsjtxy
兄弟,太强了,这种方法都能想到,真的很实用。 :在脚本中加入Opt("MustDeclareVars", 1)
编译前编辑器会检测变量啊
页:
1
[2]