Board logo

标题: [问题求助] 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

  1. Text = readTextFile("1.txt")
  2. Text = reReplace(Text,"\|.*",vbCrLf)
  3. writeTextFile Text,"2.txt"
  4. Function readTextFile(Path)
  5. Dim fso,ts
  6. Set fso = CreateObject("Scripting.Filesystemobject")
  7. Set ts = fso.OpenTextFile(Path,1)
  8. readTextFile = ts.ReadAll
  9. ts.Close
  10. End Function
  11. Function writeTextFile(Text,Path)
  12. Dim fso,ts
  13. Set fso = CreateObject("Scripting.Filesystemobject")
  14. Set ts = fso.CreateTextFile(Path,True)
  15. ts.Write Text
  16. ts.Close
  17. End Function
  18. Function reReplace(string1,Pattern,string2)
  19. Set re = New RegExp
  20. re.Pattern = Pattern
  21. re.Global = True
  22. re.IgnoreCase = True
  23. re.MultiLine = True
  24. reReplace = re.Replace(string1,string2)
  25. End Function
复制代码
sed 更方便:
  1. @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