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

杰马克

我是编程新手,因此在工作中承担了这项任务。我需要在每次击中字符串字符{1:并以结尾时拆分文本文件-},然后创建一个新的文本文件。请参见下面的示例:

原始文本文件:

{1:F01BOF} {2:I940B} {4:dfdfd 
:20:06AUG 
:25:64- 
} {1:F01BO} {2:I940 {4:dfdfd 
:20:06AUG2 
:25:6412 
:64:C200806EUR1748473, 62- 
} {1:F01} {2:I940XN} {4:fvfddf 
:20:06AUG81-}

新文本1:

{1:F01BOF} {2:I940B} {4:dfdfd 
:20:06AUG 
:25:64- 
}

新文字2

{1:F01BO} {2:I940 {4:dfdfd 
:20:06AUG2 
:25:6412 
:64:C200806EUR174847,62- 
}

新文字3:

{1:F01} {2:I940XN} {4:fvfddf 
:20:06AUG81-}

我正在使用下面的代码,但它似乎没有接起大括号字符

Set fso = CreateObject("Scripting.FileSystemObject")

data = split(fso.OpenTextFile("C:\JustNeeded.txt").ReadAll, "{1")

For i = 1 To UBound(data)
  fso.OpenTextFile("new" & i & ".txt", 2, True).Write "{1" & data(i)
Next

我正在阅读正则表达式,应该改用它吗?任何帮助将非常感谢。

托玛拉克
  • VBScript中的数组基于0。最好从0开始循环。
  • 在结尾定界符处进行拆分比较聪明-},因此拆分结果的第一个元素不为空。
  • 我正在使用With块来组织代码。很难快速阅读“一行完成”。
  • 我正在使用,Option Explicit因此必须正确声明所有变量。这可以防止变量名中的错字难以调试,并Option Explicit与所有VB代码一起使用,这是一个很好的习惯。
  • 用口语名称(例如ForWriting创建常量比使用不透明的“魔数” (如)好得多2
  • 请注意,您正在以Unicode格式编写文件,但并未以Unicode格式读取文件。这可能是有意或无意的,这是您的要求。
  • .Close在这里严格要求没有调用文件句柄,但这是很好的方式。

改进的代码:

Option Explicit

Dim FSO, text, parts, i

Const ForReading = 1
Const ForWriting = 2

Set FSO = CreateObject("Scripting.FileSystemObject")

With FSO.OpenTextFile("C:\JustNeeded.txt", ForReading)
    text = .ReadAll
    .Close
End with

parts = Split(text, "-}")

For i = 0 To UBound(parts) - 1
    If Len(parts(i)) > 0 Then
        With FSO.OpenTextFile("new" & (i + 1) & ".txt", ForWriting, True)
            .Write parts(i) & "-}"
            .Close
        End With
    End If
Next

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在某个字符处拆分文本文件以创建多个文本文件

如何在文本文件中的某个字符串后添加空行?

如何在文本文件中的某个字符串之后从python中的文本文件中提取数据?

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

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

在文本文件中同一行中的某个字符串之后添加字符串

如何检查文本文件中的某个字符串并通知何时添加了该字符串?

如何将字符串从结尾拆分为我想要的某个字符

如何读取文本文件并在冒号之前搜索某个字符串,然后在冒号之后显示内容?

如果它包含某个字符串值,如何读取文本文件并删除它和相关的行?

在文本文件中搜索多个字符串,如果退出则删除文件

在文本文件中搜索多个字符串,然后将结果打印到新的文本文件中

使用javascript将文本文件中的多个字符串替换为一个字符串

写入文本文件时,在字符串值中出现“ 0”个字符

如何在文本文件中搜索多个字符串

在多个文本文件中搜索两个字符串?

Bash脚本在文本文件中搜索多个字符串

替换> 2GB文本文件中的6000多个字符串

在 Powershell 中的文本文件中搜索多个字符串

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

如何用文本文件中的shell脚本替换多个字符串

从文本文件中读取并拆分为两个字符串,以便能够传递给

如何在文件中的某个字符串后插入文本(在OSX上)?

如何在文件中的某个字符串之后插入文本?

RE:如何在文件中的某个字符串后插入文本?

如何将文本文件导入单个字符串

将文本文件导入为单个字符串

将字符串拆分为多个字符

Python:用多个输入替换文本文件中的多个字符串