我是编程新手,因此在工作中承担了这项任务。我需要在每次击中字符串字符{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
我正在阅读正则表达式,应该改用它吗?任何帮助将非常感谢。
-}
,因此拆分结果的第一个元素不为空。With
块来组织代码。很难快速阅读“一行完成”。Option Explicit
因此必须正确声明所有变量。这可以防止变量名中的错字难以调试,并Option Explicit
与所有VB代码一起使用,这是一个很好的习惯。ForWriting
)创建常量比使用不透明的“魔数” (如)好得多2
。.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] 删除。
我来说两句