【问题标题】:Get values from a string using Split function in QTP在 QTP 中使用 Split 函数从字符串中获取值
【发布时间】:2013-12-27 12:21:40
【问题描述】:

我需要在 QTP 中根据分隔符 "," 将值与以下字符串分开 (CurrentAmount=140,000.00,货币=USD,originalAmount=200,000.00)

我在下面使用了以下代码

splittext= Split (strng, ",")
For i=0 to ubound(splittext)
msgbox splittext(i)
next

这里的问题是,输出值是这样的

0= CurrentAmount=140
1= 000.00
2= currency=USD.... so on

代码将以下值 (CurrentAmount=140,000.00,) 拆分为两部分,因为 140,000.00 中的“,”

我需要一个代码来根据分隔符“,”分隔值,但应该忽略数字数据中的“,”

请让我解决这个问题...谢谢

【问题讨论】:

    标签: regex vba qtp


    【解决方案1】:

    这应该很简单 - 假设在所需的 delim 逗号字符之后有一个空格。注意Split函数中逗号后面的空格。

    Public Sub Test()
        splitText = Split("CurrentAmount=140,000.00, currency=USD, originalAmount=200,000.00", ", ")
        For i = 0 To UBound(splitText)
            MsgBox splitText(i)
        Next
    End Sub
    

    【讨论】:

      【解决方案2】:

      Pankaj Jaju 的解决方案有效,假设您可以信任 CSV 字符串在分隔字段的逗号后始终有空格。但我认为根本问题是输入的格式没有很清楚地指定。如果可以更改格式,则应去掉数字内的逗号。或者,您可以正确地转义逗号,但是正确使用正则表达式会稍微棘手一些。 (对于如何以 CSV 格式转义逗号有不同的标准 - 一些系统使用 \,,其他系统使用引号。)

      【讨论】:

      • 为了您的兴趣,non standard CSV format specification 描述了用逗号和双引号来包含值。我更喜欢将带有 TAB 字符的文件作为拆分字符,因为 TAB 作为文本中的普通字符并不常见;就像 CR/LF 字符不像普通文本字符那样常见,可以用作行分隔符。值得注意的是,在 ASCII 范围内甚至还有特殊字符可以作为文件、组、记录和单位分隔符执行任务:“0x1C”到“0x1F”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      相关资源
      最近更新 更多