在UFT中拆分单元格

时间:2018-11-14 09:52:01

标签: vba string loops split hp-uft

我有一个文本文档(.txt),这里有n行必须分开,但要点是我没有定界符。我知道每个不变的变量的长度。

例如,第一个变量是从25个字符到35个字符;第二个,从36到47;然后从48到78,然后从79到119,直到行的第360个字符。

我想解决方案是双循环的,每行一个,每个变量一个,但是我无法得到。

如果您需要更多信息,请问,我完全迷路了。

非常感谢

1 个答案:

答案 0 :(得分:0)

您需要采取的步骤:

  1. 打开文件
  2. 阅读一行
  3. 确认该行是360个字符
  4. 将行的大块分配给不同的变量
  5. 用变量做事
  6. 阅读另一行并重复直到EOF

1&2: 您的工作簿需要对Microsoft脚本运行时的引用,以便您可以访问FileSystemObject。我让你研究一下。

创建一个FileSystemObject并使用它来创建带有文件路径的TextStream。

currentLine = textStream.ReadLine()
Do Until textStream.EOF
    If Len(currentLine) = 360 Then
        firstChunk = Mid$(currentLine, 25, 10)
        secondChunk = Mid$(currentLine, 36, 11)
        thirdChunk = Mid$(currentLine, 48, 30)
        fourthChunk = Mid$(currentLine, 78, 30)

        ' Do stuff with chunks
    End If
    currentLine = textStream.ReadLine()
Loop

在适当的时候,您可能会很喜欢,并有一个由成对的项目组成的数组,其中详细说明了块的起点以及它的字符数,例如:

Dim arrChunkPoints As Variant
Dim arrChunks As Variant
arrChunkPoints = Array(25,10, _
                       36,11, _
                       48,30, _
                       78,30)
ReDim arrChunks(UBound(arrChunkPoints)\2)   ' Integer returned

这将允许您跨过arrChunkPoints中的项目,并使用Mid $()使用currentLine的一部分填充arrChunks的每个元素,但使用arrChunkPoints中的值进行填充。但这可能是另一天。