如何根据字符串将文本文件拆分为多个文件

贾米勒

我有这个文本文件示例:

W1M0130
2012年3月12日00:00 SS_001 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_002 15 14 149 64 0 0 0 1
2012年3月12日00:00 SS_003 4 3233100 0 0 0 1
2012年3月12日00:00 SS_004 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_005 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_006 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_007 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_008 0 0 0 0 0 0 0 0
$ END
W1M0130
2012年3月12日00:00 SS_001 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_002 15 14 149 64 0 0 0 1
2012年3月12日00:00 SS_003 4 3233100 0 0 0 1
2012年3月12日00:00 SS_004 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_005 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_006 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_007 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_008 0 0 0 0 0 0 0 0
$ END
W1M0200
2012/03/12 00:30 SS_001 0 0 0 0 0 0 0 0
2012年3月12日00:30 SS_002 12 11 136 58 0 0 0 1
2012年3月12日00:30 SS_003 3 2 213 91 0 0 0 1
2012年3月12日00:30 SS_004 0 0 0 0 0 0 0 0
2012/03/12 00:30 SS_005 0 0 0 0 0 0 0 0
2012/03/12 00:30 SS_006 0 0 0 0 0 0 0 0
2012年3月12日00:30 SS_007 0 0 0 0 0 0 0 0
2012年3月12日00:30 SS_008 0 0 0 0 0 0 0 0
$ END
W1M0230
...

这是我的vbscript代码:

textFile = "C:\data.txt"
saveTo = "C:\"
writeTo = ""
headingPattern = "(W[0-9][A-Z][0-9]*)"

Dim fso, fileFrom, regex
Set fso = CreateObject("Scripting.FileSystemObject")
Set fileFrom = fso.OpenTextFile(textFile)
Set regex = New RegExp

With regex
  .Pattern = headingPattern
  .IgnoreCase = false
  .Global = True
End With

While fileFrom.AtEndOfStream <> True
  line = fileFrom.ReadLine
  Set matches = regex.Execute(line)

  If matches.Count > 0 Then
    writeTo = saveTo & matches(0).SubMatches(0) & ".txt"
    Set fileTo = fso.CreateTextFile(writeTo)
  Else
    fileTo.WriteLine(line)
  End If
Wend

Set fileFrom = Nothing
Set fso = Nothing
Set regex = Nothing

第一个输出文件的文件名将是W1M0130.txt,内容将是下面的行,直到下一个文件名(W1M0200)。文件名均以W开头,内容行均以日期开头,但最后一行始终为$ END。

仅当文本文件中的模式只有一个(V1M0130然后W1M0200然后W1M0230)时,VBScript代码才能正常工作,但是如果文本文件包含两个或多个该模式,我将很难。W1M0130然后另一个W1M0130然后W1M0200然后W1M0230

W1M0130.txt应该类似于:

W1M0130
2012年3月12日00:00 SS_001 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_002 15 14 149 64 0 0 0 1
2012年3月12日00:00 SS_003 4 3233100 0 0 0 1
2012年3月12日00:00 SS_004 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_005 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_006 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_007 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_008 0 0 0 0 0 0 0 0
$ END
W1M0130
2012年3月12日00:00 SS_001 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_002 15 14 149 64 0 0 0 1
2012年3月12日00:00 SS_003 4 3233100 0 0 0 1
2012年3月12日00:00 SS_004 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_005 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_006 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_007 0 0 0 0 0 0 0 0
2012年3月12日00:00 SS_008 0 0 0 0 0 0 0 0
$ END
安斯加·威彻斯(Ansgar Wiechers)

CreateTextFile替换现有文件,因此您要替换之前编写的文件。使用OpenTextFile打开文件进行追加。设置第三个参数以True创建文件(如果文件不存在)。

Set fileTo = fso.OpenTextFile(writeTo, 8, True)

另外,遇到一行时,请关闭文件$END

Else
  fileTo.WriteLine(line)
  If line = "$END" Then fileTo.Close
End If

旁注:大多数情况下,将对象设置Nothing毫无意义,因此除非有理由,否则不要这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据字符串将文本文件拆分为多个文件

来自分类Dev

将文本文件批量拆分为出现字符串的文本文件

来自分类Dev

如何根据文本字符串将CSV文件拆分为多个文件?

来自分类Dev

击中某个字符串时将文本文件拆分为多个文件

来自分类Dev

如何在python中将文本文件的字符串拆分为char和number

来自分类Dev

将文本文件拆分为多个文件

来自分类Dev

根据数据将文本文件拆分为Unix中的多个文件

来自分类Dev

根据数据将文本文件拆分为Unix中的多个文件

来自分类Dev

如何根据R中的条件将文本文件拆分为多个.txt文件或数据帧?

来自分类Dev

根据文件中的单词和特殊字符将文本文件拆分为单词

来自分类Dev

按特定的字符序列将文本文件拆分为多个文件

来自分类Dev

如何将一个文本文件拆分为多个文本文件?

来自分类Dev

如何将一个文本文件拆分为多个文本文件

来自分类Dev

如何使用awk通过第一个非空白字符将文本文件拆分为记录,并仅打印包含字符串的记录

来自分类Dev

使用Python将数据文本文件拆分为多个MySQL文本文件

来自分类Dev

如何将一个文本文件拆分为多个* .txt文件?

来自分类Dev

使用 C# 如何将文本文件拆分为多个文件

来自分类Dev

如何将多个文本文件中的字符串添加到数组

来自分类Dev

如何从文本文件读取,从整数拆分字符串,然后将整数传递到arraylist?

来自分类Dev

将文本文件(逐行)拆分为不同的文件

来自分类Dev

根据日期名称读取多个文本文件,然后全部写入以连接字符串

来自分类Dev

根据内容中的多个字符串重命名文本文件

来自分类Dev

根据日期名称读取多个文本文件,然后全部写入以连接字符串

来自分类Dev

如何按字符串拆分文本文件内容?

来自分类Dev

将大文本文件(约50GB)拆分为多个文件

来自分类Dev

如何阅读文本文件,然后使用python将其拆分为多个文本文件?

来自分类Dev

如何读取文本文件,然后使用python将其拆分为多个文本文件?

来自分类Dev

如何在UNIX中将分隔符上的文本文件拆分为多个文件?

来自分类Dev

将字符串写入文本文件

Related 相关文章

  1. 1

    如何根据字符串将文本文件拆分为多个文件

  2. 2

    将文本文件批量拆分为出现字符串的文本文件

  3. 3

    如何根据文本字符串将CSV文件拆分为多个文件?

  4. 4

    击中某个字符串时将文本文件拆分为多个文件

  5. 5

    如何在python中将文本文件的字符串拆分为char和number

  6. 6

    将文本文件拆分为多个文件

  7. 7

    根据数据将文本文件拆分为Unix中的多个文件

  8. 8

    根据数据将文本文件拆分为Unix中的多个文件

  9. 9

    如何根据R中的条件将文本文件拆分为多个.txt文件或数据帧?

  10. 10

    根据文件中的单词和特殊字符将文本文件拆分为单词

  11. 11

    按特定的字符序列将文本文件拆分为多个文件

  12. 12

    如何将一个文本文件拆分为多个文本文件?

  13. 13

    如何将一个文本文件拆分为多个文本文件

  14. 14

    如何使用awk通过第一个非空白字符将文本文件拆分为记录,并仅打印包含字符串的记录

  15. 15

    使用Python将数据文本文件拆分为多个MySQL文本文件

  16. 16

    如何将一个文本文件拆分为多个* .txt文件?

  17. 17

    使用 C# 如何将文本文件拆分为多个文件

  18. 18

    如何将多个文本文件中的字符串添加到数组

  19. 19

    如何从文本文件读取,从整数拆分字符串,然后将整数传递到arraylist?

  20. 20

    将文本文件(逐行)拆分为不同的文件

  21. 21

    根据日期名称读取多个文本文件,然后全部写入以连接字符串

  22. 22

    根据内容中的多个字符串重命名文本文件

  23. 23

    根据日期名称读取多个文本文件,然后全部写入以连接字符串

  24. 24

    如何按字符串拆分文本文件内容?

  25. 25

    将大文本文件(约50GB)拆分为多个文件

  26. 26

    如何阅读文本文件,然后使用python将其拆分为多个文本文件?

  27. 27

    如何读取文本文件,然后使用python将其拆分为多个文本文件?

  28. 28

    如何在UNIX中将分隔符上的文本文件拆分为多个文件?

  29. 29

    将字符串写入文本文件

热门标签

归档