VBScriptでGUIDを出力すると、その後のすべてのテキストが無視される

StackOverflow https://stackoverflow.com/questions/413367

  •  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")
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top