290277275 发表于 2010-9-8 22:12:34

请教取某文件内指定字符串后面内容并生成新文件

文件A。TXT内包含 Processor: Intel(R) Atom(TM) CPU N450   @ 1.66GHz (2 CPUs)
如何取 Processor:这一行后面的内容并生成到新的文件B。TXT

xlcwxl 发表于 2010-9-8 22:49:10

$test = StringReplace(FileRead(@ScriptDir&'\a.txt'), "Processor: ",'')
$file = FileOpen(@ScriptDir&"\b.txt", 1)
FileWrite($file,$test)
FileClose($file)

lsqyx528 发表于 2010-9-9 11:19:57

本帖最后由 lsqyx528 于 2010-9-9 11:23 编辑

回复 2# xlcwxl


    楼上的测试不通。自己写了个:Local $test = StringRegExp(FileRead(@ScriptDir & '\a.txt'), "Processor: (.+)", 3)
If IsArray($test) Then
        Local $file = FileOpen(@ScriptDir & "\b.txt", 1)
        FileWrite($file, $test)
        FileClose($file)
EndIf

newuser 发表于 2010-9-9 14:54:52

本帖最后由 newuser 于 2010-9-9 14:56 编辑

回复 3# lsqyx528
阁下的这个也不通啊?
不好意思!理解错了,以为是指定字符串后的所有内容都到新b.txt呢?原来只是后面的1行内容,正则太神奇!

newuser 发表于 2010-9-9 16:31:52

回复 3# lsqyx528
能指定读取2个字符串后的内容既它们之间的内容生成1个新的文本文件吗?

3mile 发表于 2010-9-9 17:00:34

回复 5# newuser
stringregexp('str',.{2}(.+),3)

lsqyx528 发表于 2010-9-9 18:05:17

回复 5# newuser


    没有太懂你的提问。如果是说要读取$A和$B中间的内容的话:Local $A = "aaa"
Local $B = "bbb"
Local $test = StringRegExp(FileRead(@ScriptDir & '\a.txt'), $A & "(?s)(.+)" & $B, 3)
If IsArray($test) Then
        Local $file = FileOpen(@ScriptDir & "\b.txt", 1)
        FileWrite($file, $test)
        FileClose($file)
EndIf

newuser 发表于 2010-9-10 07:44:04

回复 7# lsqyx528
非常谢谢!
我的要求是这样的,假设有这样一个TXT:
DFSA
FSD
你好
中国
加油
保护钓鱼岛是所有中国人的责任
dfadfdfs
df3
dfs
能否将FSD和dfadfdfs中间的内容截取出来并保存为1个新的TXT.

tankwu 发表于 2010-9-10 09:02:41

应该是要用正则表达式

3mile 发表于 2010-9-10 09:42:50

回复 8# newuser
#include <Array.au3>
$str="DFSA"& _
"FSD"& _
"你好"& _
"中国"& _
"加油"& _
"保护钓鱼岛是所有中国人的责任"& _
"dfadfdfs"& _
"df3"& _
"dfs"

$txt=stringregexp($str,'(?ms)FSD(.*)dfadfdfs',3)
_arraydisplay($txt)

tankwu 发表于 2010-9-10 14:40:11

正则表达式是不是很难掌握啊
页: [1]
查看完整版本: 请教取某文件内指定字符串后面内容并生成新文件