afan 兄:你好!此代碼試還是一樣,同樣是運行后完成不了,卡在下面的地方就不動了。我使用的 ...
wenquan79 发表于 2013-2-1 14:01 http://www.autoitx.com/images/common/back.gif
看不出什么问题。你可以直接执行au3文件看看。或者打包上传你的txt文档。
以下多加了个判断,如果全都有匹配则写空4.txtLocal $str1 = FileRead('1.txt')
Local $str2 = FileRead('2.txt')
$ts = TimerInit()
Local $aSR2 = StringRegExp($str2, '(\S+)\h+(\S+)', 3)
If @Error Then Exit
For $i = 0 To UBound($aSR2) - 1 Step 2
Assign('~' & $aSR2[$i], $aSR2[$i + 1])
Next
Opt('ExpandVarStrings', 1)
$str1 = StringRegExpReplace($str1, '(?:\S+\h+\S+\h+)(\S+)', '$0 $~$1$')
Local $FO = FileOpen('3.txt', 2 + 8)
FileWrite($FO, $str1)
FileClose($FO)
If StringInStr($str1, '$~') Then
Local $str4 = StringRegExpReplace($str1, '(?s).+?(\S+)\h+\$~.+?\$\h+.+?', '$1______')
$str4 = StringRegExpReplace($str4, '(?s)______[^_]+$', '')
$str4 = StringRegExpReplace($str4, '______', @CRLF)
Else
Local $str4 = ''
EndIf
$FO = FileOpen('4.txt', 2 + 8)
FileWrite($FO, $str4)
FileClose($FO)
Msgbox(0, '完成耗时', Round(TimerDiff($ts))) 回复 16# afan
afan 兄,你好!我是直接復制你的代碼來運行的,但還有這個問題,我看一下au3的版本是3.3.9.4,系統是繁體Win7 32位的。
-------
>"D:\autoit3\SciTe\ACNWrapper\ACNWrapper.exe" /run /ErrorStdOut /in "D:\autoit3\new\bb.au3" /autoit3dir "D:\autoit3" /UserParams
+>15:03:18 ?﹍?︽ ACNWrapper v.1.0.1.7
+> ============================================
+>?︽?挂:
+> CPU疼琜: X64
+> ╰?疼琜: X86
+> ╰??ē: 0404
+> ??ガЫ: E0200804
+> ???秖: 4095MB
+> ??逞?: 1676MB
+> 巨?╰?: WIN_7
+> AU3?セ: 3.3.9.4
+> ============================================
>?︽ AU3Check (3.3.9.5)?﹍ヘ?:D:\autoit3
+>15:03:18 AU3Check ЧΘ:0
>?︽:(3.3.9.4):D:\autoit3\autoit3.exe "D:\autoit3\new\bb.au3" 回复 17# wenquan79
你这天书信息鬼才看得懂…
直接运行是指双击au3文件运行,不要在编辑器中运行… 回复 18# afan
afan 兄:抱歉!因編輯器是簡體漢化的,而系統是繁體的,所以變亂碼了,本想將那運行環境及結果貼過來讓你了解一下,反而更亂了。
不在編輯器中運行,直接雙擊運au3文件也這樣,我等下找一下臺簡體的系統試試看,謝謝! 回复 19# wenquan79
后面加的几行和上面的代码没有什么功能上的脚本区别,怎么加了就不行? 编译个试试~
本帖最后由 wenquan79 于 2013-2-1 17:12 编辑
回复 20# afan
afan 兄:test.exe 在我這邊運行的結果與腳本的一樣,雙擊運行后,能產出3.txt,但一直不退出,CPU的使用率在50%左右,
強行中止此程序CPU使用率恢復到正常的10%左右。謝謝! 回复 21# wenquan79
现在只能怀疑你的文本文档了,精简一下你的“1.txt”,“2.txt”,可以重现问题即可,上传我再试试 回复 22# afan
afan 兄:如你所說真的是文本的問題,我試了只要刪除文本1前2行就可以,文本我已上傳,你再幫忙看看,謝謝! 回复 23# wenquan79
是的,用你上传的文件果真出现问题了。我看看先 Local $str1 = FileRead('1.txt')
Local $str2 = FileRead('2.txt')
$ts = TimerInit()
Local $aSR2 = StringRegExp($str2, '(\S+)\h+(\S+)', 3)
If @Error Then Exit
For $i = 0 To UBound($aSR2) - 1 Step 2
Assign('~' & $aSR2[$i], $aSR2[$i + 1])
Next
Opt('ExpandVarStrings', 1)
$str1 = StringRegExpReplace($str1, '(?:\S+\h+\S+\h+)(\S+)', '$0 $~$1$')
Local $FO = FileOpen('3.txt', 2 + 8)
FileWrite($FO, $str1)
FileClose($FO)
Local $aSR = StringRegExp($str1, '(\S+)\h+\$~.+?\$', 3), $str4 = ''
If Not @Error Then
For $i = 0 To UBound($aSR) - 1
$str4 &= $aSR[$i] & @CRLF
Next
EndIf
$FO = FileOpen('4.txt', 2 + 8)
FileWrite($FO, $str4)
FileClose($FO)
Msgbox(0, '完成耗时', Round(TimerDiff($ts))) 回复 25# afan
afan 兄:新的代碼經測試沒問題了,神速!我知道這表達式的東西很難懂,解釋起來也很深奧,但還是想麻煩兄費時幫忙解說一下,謝謝! afan果然厉害 回复 4# afan
A大,怎么解析'$~$1$',研究了半天没有明白{:face (461):} 回复 28# xms77
同问
页:
1
[2]