首页 > 解决方案 > 在 UFT 中拆分单元格

问题描述

我有一个文本文档 (.txt),我有n必须拆分的行,但关键是我没有分隔符。我知道每个不变的变量的长度。

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

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

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

谢天谢地,

标签: vbastringloopssplithp-uft

解决方案


您需要采取的步骤:

  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 的一部分填充 arrChunk 的每个元素,但填充来自 arrChunkPoints 的值。但这可能是另一天。


推荐阅读