lusheng0028 发表于 2011-7-8 10:34:51

文件,读取,和数组处理怏慢问题

本帖最后由 lusheng0028 于 2011-7-8 16:31 编辑

#include <file.au3>
#Include <Array.au3>

Dim $fwrite ;定义要存入的文件变量
Dim $file ,$aArray,$temp ,$i =2
Local $time=TimerInit()

$fwrite=FileOpen("e:\Function.sql",1) ;打开或创建新文件Function.sql
If @error Then             ;判断打开或创建新文件Function.sql是否失败
       MsgBox(0,"error","打开或创建新文件Function.sql失败")
   Else
   $file=FileOpenDialog("选择要读取的文本文件","","(*)") ;打开选择的文件Function.sql
   
   If @error Then            ;判断打开选择的文件是否失败
       MsgBox(0,"error","文件打开失败")
   Else
           _FileReadToArray($file,$aArray)
           ;删除总行数,避免排序出错
           _ArrayDelete($aArray,0)
       
                Local $rows = UBound($aArray)
                For $i = 1 To $rows-1
         $temp = StringRegExp($aArray[$i], '\bprompt\w*\b', 1) ; 检查字串是否符合给定的正则表达式\bprompt\w*\b
       
                  If$temp==0 Then ;0(不匹配)
                               _ArrayDelete($aArray,$i)
                EndIf
                Next
                _FileWriteFromArray($fwrite,$aArray)
                FileFlush($fwrite) ;刷新文件缓冲器中的数据到磁盘.
          FileClose($file);关闭选择文件
      FileClose($fwrite) ;关闭要写入的文件
               
        EndIf
EndIf
$G =TimerDiff($time)
MsgBox(0,"用时:" ,$G )
       


-----------------------------------------------------------------------------------------------
老报这个错:
$temp = StringRegExp($aArray[$i], '\bprompt\w*\b', 1)
$temp = StringRegExp(^ ERROR

------------------------------------
程序主做的是从一个文本删包函(prompt)字符的行,然后生成一个新的文件

3mile 发表于 2011-7-8 11:22:13

在_ArrayDelete($aArray,$i)这句的后面增加一句
$Row-=1试下
页: [1]
查看完整版本: 文件,读取,和数组处理怏慢问题