2011-11-17 60 views
1

我在网上搜索了高和低,我无法找到一个直接的答案! 我有一个文件,在一个长行中大约有100,000个字符。从字符串创建固定宽度的文件

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

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

任何人都可以请给我一个指针吗?

回答

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 
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