Outputting a GUID in VBScript ignores all text after it

夙愿已清 提交于 2019-12-06 18:28:19

问题


I'm creating a GUID for use in a Classic ASP application, by using TypeLib. However, even a simple test such as writing the GUID out to the screen is giving me problems - it prints the GUID but ignores everything after it (e.g. HTML tags, additional words, anything).

Here's the rudimentary code to test this:

Set typeLib = Server.CreateObject("Scriptlet.TypeLib")
myGuid = typeLib.Guid
Response.Write myGuid & " is the new GUID"
Set typeLib = Nothing

This will display something like {9DDB27D1-F034-41D7-BB88-D0D811DB91CE} and that's it; the rest of the text is ignored and isn't written out. However, if I hard-code that GUID value and reference it from a variable, the rest of the text appears just fine. I've tried explicit conversion to a String value before displaying, but it still happens.


回答1:


I seem to have solved my own problem.. it was adding something extra to the text, so I had to do:

myGuid = Left(myGuid, Len(myGuid)-2)

and it now outputs fine. Strange.




回答2:


I use something like this

Function GetGuid() 
        Set TypeLib = CreateObject("Scriptlet.TypeLib") 
        GetGuid = Left(CStr(TypeLib.Guid), 38) 
        Set TypeLib = Nothing 
End Function 



回答3:


It adds a vbNullChar or Chr(0) at the end of the GUID. Replace(myGuid, Chr(0), "") will fix it. Better than using Left or Mid functions.




回答4:


I Use It, Like This =

With CreateObject("Scriptlet.TypeLib")
'' For Del This = {}
 WSH.Echo mid(.Guid ,2, 36)
 WSH.Echo (.Guid)
End With



回答5:


GUID is a struct and not a string, you need to add a ToString() method to output it as a string.

https://msdn.microsoft.com/fr-fr/library/97af8hh4(v=vs.110).aspx

Response.Write myGuid.ToString("D")


来源:https://stackoverflow.com/questions/413367/outputting-a-guid-in-vbscript-ignores-all-text-after-it

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!