VBScriptでGUIDを出力すると、その後のすべてのテキストが無視される
-
03-07-2019 - |
質問
TypeLibを使用して、クラシックASPアプリケーションで使用するGUIDを作成しています。ただし、GUIDを画面に書き込むなどの簡単なテストでも問題が発生します。GUIDは出力されますが、その後のすべて(HTMLタグ、追加の単語など)は無視されます。
これをテストするための基本的なコードは次のとおりです。
Set typeLib = Server.CreateObject("Scriptlet.TypeLib")
myGuid = typeLib.Guid
Response.Write myGuid & " is the new GUID"
Set typeLib = Nothing
これは、 {9DDB27D1-F034-41D7-BB88-D0D811DB91CE} のようなものを表示します。テキストの残りは無視され、書き出されません。ただし、そのGUID値をハードコーディングして変数から参照すると、残りのテキストは問題なく表示されます。表示する前にString値への明示的な変換を試みましたが、それでも起こります。
解決
自分の問題を解決したようです。テキストに何か余分なものを追加していたので、やらなければなりませんでした:
myGuid = Left(myGuid, Len(myGuid)-2)
そしてそれは今ではうまく出力します。奇妙な。
他のヒント
このようなものを使用します
Function GetGuid()
Set TypeLib = CreateObject("Scriptlet.TypeLib")
GetGuid = Left(CStr(TypeLib.Guid), 38)
Set TypeLib = Nothing
End Function
GUIDの最後にvbNullCharまたはChr(0)を追加します。 Replace(myGuid、Chr(0)、"")で修正されます。 LeftまたはMid関数を使用するよりも優れています。
GUIDは文字列ではなく構造体です。文字列として出力するには、ToString()メソッドを追加する必要があります。
https://msdn.microsoft。 com / fr-fr / library / 97af8hh4(v = vs.110).aspx
Response.Write myGuid.ToString("D")
所属していません StackOverflow