如何在UFT 12.0中使用VBScript Dictionary设置双引号

时间:2015-02-28 05:00:37

标签: vbscript qtp

在这里,我想在我的句子中添加双引号("),但它会在单个位置插入两个(“),如图所示。已尝试Chr(34)Replace()。 请帮我在UFT12中使用VBScript在Dictionary Item中插入双引号。 我不想使用Msgbox来显示这个字符串。

Dim Dict
Set Dict=CreatObject("Scripting.Dictionary")
Dic("Value")="I went to mall....Where I met my Friends "&Chr(32)&"XYZ" & "DEF"&Chr(34)&". We enjoied a lot."

当我使用UFT12.0“观察”Dic("Value")时它会显示:

  

“我去商场......在哪里见到了我的朋友”“XYZ& DEF”“。我们嘱咐了   很多“。

enter image description here

2 个答案:

答案 0 :(得分:1)

您的调试器工具将字符串变量的值显示为文字(您必须键入/粘贴到编辑器中)。证据:周围的双引号。

你的.. "&Chr(32)&"XYZ" & "DEF"&Chr(34)&". ..证明:使用Chr()是较差的(额外的函数调用和噪声)并且容易出错(Chr(错误的数字)以逃避“by”“。

答案 1 :(得分:1)

以下是一个示例,除了详尽的Ekkehard.Horner's answer(返回字符串以及第一次出现"的位置并在该字符串中加倍""):

option explicit
Dim myString0, myString1, myString2, myString4

myString0 = "none double quotes"
myString1 = "with ""double"" quotes 1"
myString2 = "with " & Chr(34) & "double" & Chr(34) & " quotes 2"
myString4 = "twice """"double"""" quotes"

Wscript.Echo Wscript.ScriptName & ": Using Double Quotes" _
  & vbNewLine & myString0 _
  & vbTab & InStr( 1, myString0, Chr(34)        , vbTextCompare) _
  & vbTab & InStr( 1, myString0, Chr(34)&Chr(34), vbTextCompare) _
  & vbNewLine & myString1 _
  & vbTab & InStr( 1, myString1, Chr(34)        , vbTextCompare) _
  & vbTab & InStr( 1, myString2, Chr(34)&Chr(34), vbTextCompare) _
  & vbNewLine & myString2 _
  & vbTab & InStr( 1, myString2, Chr(34)        , vbTextCompare) _
  & vbTab & InStr( 1, myString2, Chr(34)&Chr(34), vbTextCompare) _
  & vbNewLine & myString4 _
  & vbTab & InStr( 1, myString4, Chr(34)        , vbTextCompare) _
  & vbTab & InStr( 1, myString4, Chr(34)&Chr(34), vbTextCompare)

<强>输出

==>cscript //nologo 28778280.vbs
28778280.vbs: Using Double Quotes
none double quotes      0       0
with "double" quotes 1  6       0
with "double" quotes 2  6       0
twice ""double"" quotes 7       7