本帖最后由 boyhong 于 2012-5-31 15:22 编辑
有一个字符串,我想找寻匹配部分的那一行单独取出来。(这个字符串有600行左右,请大家帮忙考虑一下效率,谢谢您多多指点。)
我现在用的是笨办法如下,先写到一个临时文件里去,然后查。能不能不用生成临时文件,直接对字符串进行一个匹配行的提取?谢谢大家。
我的示例代码如下:
$test="1,姓名,帐号,加分项目1,加分项目2,加分项目3,"&@CRLF&"2,张三,zhangsan,4,,2,"&@CRLF&"3,张三2,zhangsan2,1,3,,"&@CRLF&"4,张三3,zhangsan3,,1,2,"&@CRLF&"5,张三4,zhangsan4,,,2,"
MsgBox(0,"要处理的字符串是:",$test)
;将上边的字符串写到一个临时的文件里
FileWrite(@ScriptDir&"\test1.txt",$test)
;要打开的文件
Local $file = FileOpen(@ScriptDir&"\test1.txt", 0)
;建立一个临时文件存货符合条件的结果
Local $jieguo = FileOpen(@ScriptDir&"\jieguo.csv", 2)
;先把第一行的表头写过去
FileWriteLine($jieguo, FileReadLine($file,1))
; 每次读取一行文本,直到文件结束.
While 1
Local $line = FileReadLine($file)
If @error = -1 Then ExitLoop
If StringInStr($line,"zhangsan2") Then
FileWriteLine($jieguo, $line & @CRLF)
EndIf
Wend
FileClose($file)
FileClose($jieguo)
MsgBox(0, "OK", "完事了")
|