其实我正在写一个文件转换工具。数据值表示 120x120 矩阵。我的第一个想法是两个嵌套的 for 循环,第一个循环中只有一个新行:Easy。
输入文件的每个 fith 值都有一个 vbNewLine。我将输入文件解析为字符串strAll
。
输入
strAll 包含 10 个字符长的值
" -24.1189" (two blanks before value)
" 1.2345" (four blanks before value)
输出
-24.1189;-24.1189; (...total 120 values...)
-24.1234;-24.1189; (...total 120 values...)
(... total 120 rows ...)
使用Mid
hat 应该很容易解析:Mid(strAll, 1+i, 10+i)
,i
for 循环中的计数器在哪里。AReplace(stAll, " ", "")
应删除所有 3 个空白、2 个空白和 1 个空白。
问题:如何将字符串输出到文件,格式类似于矩阵?
Dim intValueLength, maxValue, intValueInRowMax
intValueLength=10
intValueInRowMax=120
maxValues=intValueInRowMax * intValueInRowMax
Sub Strg2Array
arrAll = array()
' convert to array
For i=1 To maxValues
ReDim Preserve arrAll(UBound(arrAll) +1)
arrAll(UBound(arrAll)) = Mid(strAll, 1+(i-1)*intValueLength, i*intValueLength)
Next
End Sub
Sub SaveAll
Dim intValueInRow
intValueInRow=0
Const ForWriting = 2
Set objFSOOut = CreateObject("Scripting.FileSystemObject")
Set objOutput = objFSOOut.OpenTextFile(strFileName, ForWriting, true)
for each value in arrAll
objOutput.Write value
intValueInRow = intValueInRow + 1 'Argh, there is no "++" operator?
If (intValueInRow = intValueInRowMax) Then
objOutput.Write vbNewLine
intValueInRow=0
End If
next
objOutput.Close
Set objFSOOutput = Nothing
End Sub