标题: [问题求助] vbs如何截取/提取txt文本里以指定字符分割的每一行的第一列/首个字段的内容 [打印本页]
作者: hnldwhm52 时间: 2015-1-13 12:26 标题: vbs如何截取/提取txt文本里以指定字符分割的每一行的第一列/首个字段的内容
本帖最后由 pcl_test 于 2016-9-13 19:56 编辑
请教老师?
将1.txt内容, 实现2.txt内容功能的vbs代码。
1.txt
601727|20141023 和欧洲燃气轮机巨头-意大利安萨尔多公司签署协议,占有40%股权|0.000
600808|20141030 高铁火轮装备制造龙头|0.000
000988|20141103 激光上游的核心技术—激光器|0.000
002008|20141103 激光切割设备|0.000
300024|20141103 激光显示|0.000 请教老师?
2.txt
601727
600808
000988
002008
300024
谢谢!!!!
作者: CrLf 时间: 2015-1-13 15:26
- Text = readTextFile("1.txt")
- Text = reReplace(Text,"\|.*",vbCrLf)
- writeTextFile Text,"2.txt"
-
-
- Function readTextFile(Path)
- Dim fso,ts
- Set fso = CreateObject("Scripting.Filesystemobject")
- Set ts = fso.OpenTextFile(Path,1)
- readTextFile = ts.ReadAll
- ts.Close
- End Function
-
- Function writeTextFile(Text,Path)
- Dim fso,ts
- Set fso = CreateObject("Scripting.Filesystemobject")
- Set ts = fso.CreateTextFile(Path,True)
- ts.Write Text
- ts.Close
- End Function
-
- Function reReplace(string1,Pattern,string2)
- Set re = New RegExp
- re.Pattern = Pattern
- re.Global = True
- re.IgnoreCase = True
- re.MultiLine = True
- reReplace = re.Replace(string1,string2)
- End Function
复制代码
sed 更方便:- @sed "s/|.*//" 1.txt >2.txt
复制代码
作者: hnldwhm52 时间: 2015-1-13 16:48
本帖最后由 hnldwhm52 于 2015-1-13 17:34 编辑
sed 更方便:
CrLf 发表于 2015-1-13 15:26
CrLf老师!!
您 好!!感谢您的解答!!第一种方法通过,不知何故第二种方法未通过,我使用的是win7系统。
作者: DAIC 时间: 2015-1-13 17:47
回复 3# hnldwhm52
你需要下载一个 sed.exe
作者: hnldwhm52 时间: 2015-1-13 20:29
回复 hnldwhm52
你需要下载一个 sed.exe
DAIC 发表于 2015-1-13 17:47
CrLf老师!!
您 好!!再次感谢您的解答!!我下载了sed.exe且运行,2.txt里是空的。
作者: DAIC 时间: 2015-1-14 09:45
回复 5# hnldwhm52
我这里测试没有问题
1、看看1.txt是不是ANSI编码
2、看看sed的版本是不是有问题
3、如果你要把代码放到bat文件里面的话不要命名成sed.bat试试test.bat
c:\Test>sed "s/|.*//" 1.txt >2.txt
c:\Test>type 2.txt
601727
600808
000988
002008
300024
c:\Test>sed --version
sed (GNU sed) 4.2.2
作者: hnldwhm52 时间: 2015-1-14 11:00
本帖最后由 hnldwhm52 于 2015-1-14 11:15 编辑
回复 hnldwhm52
我这里测试没有问题
1、看看1.txt是不是ANSI编码
2、看看sed的版本是不是有问题
...
DAIC 发表于 2015-1-14 09:45
DAIC 老师!
您 好!!再次感谢您的细心解答!已解决。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |