从字符串创建固定宽度文件

时间:2011-11-17 23:27:39

标签: file-io vbscript

我在互联网上搜索过高低,我找不到直接答案! 我有一个长行约100,000个字符的文件。

我需要读取此文件并将其全部再写出来,以102行长,以VbCrLf结尾。没有分隔符。

我认为在VB Script中有很多方法可以解决这样的问题......但是 显然不是!

有人可以给我一个指针吗?

2 个答案:

答案 0 :(得分:1)

这应该让你开始吧(我的头顶 - 未经测试!)。

Const ForReading = 1
Const ForWriting = 2
Dim sNewLine

Set fso = CreateObject("Scripting.FileSystemObject")
Set tsIn = fso.OpenTextFile("OldFile.txt", ForReading)  ' Your input file
Set tsOut = fso.OpenTextFile("NewFile.txt", ForWriting) ' New (output) file

While Not tsIn.AtEndOfStream              ' While there is still text
  sNewLine = tsIn.Read(102)               ' Read 120 characters
  tsOut.Write sNewLine & vbCrLf         ' Write out to new file + CR/LF
Wend                                    ' Loop to repeat

tsIn.Close
tsOut.Close

答案 1 :(得分:0)

我不会介绍文件的阅读,因为这是你可以在任何地方找到的东西。因为我已经用vb或vbscript编写了多年,我希望.net代码就足够了。

伪:从文件中读取行,将其放入例如字符串中(性能问题是什么?)。 一个简单的算法可能会出现性能问题(多线程,并行可能是一个解决方案):

Public Sub foo()
    Dim strLine As String = "foo²"
    Dim strLines As List(Of String) = New List(Of String)
    Dim nrChars = strLine.ToCharArray.Count
    Dim iterations = nrChars / 102

    For i As Integer = 0 To iterations - 1
        strLines.Add(strLine.Substring(0, 102))
        strLine = strLine.Substring(103)
    Next

    'save it to file
End Sub