在VBScript中输出一个GUID会忽略它后面的所有文本
我正在使用TypeLib创建一个在Classic ASP应用程序中使用的GUID。但是,即使是一个简单的测试,例如将GUID写入屏幕,也会给我带来一些问题 - 它会打印出GUID,但忽略它后面的所有内容(例如HTML标签,其他文字,任何东西)。在VBScript中输出一个GUID会忽略它后面的所有文本
这里是最起码的准则来测试这一点:
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值并从一个变量引用它,其余的文本显示就好了。我已经尝试显示之前显式转换为字符串值,但它仍然发生。
我似乎已经解决我自己的问题..它被添加到文本额外的东西,所以我不得不这样做:
myGuid = Left(myGuid, Len(myGuid)-2)
,现在输出的罚款。奇怪。
GUID是一个结构体而不是一个字符串,您需要添加一个ToString()方法将其输出为字符串。
https://msdn.microsoft.com/fr-fr/library/97af8hh4(v=vs.110).aspx
Response.Write myGuid.ToString("D")
我不认为我可以在VBScript中使用ToString;试图使用typeLib.Guid.ToString()给我一个错误。 – 2009-01-05 15:16:33
检查这个 http://support.stormhosts.net/showthread.php?t=344 – Schwartser 2009-01-05 15:33:56
我使用这样的
Function GetGuid()
Set TypeLib = CreateObject("Scriptlet.TypeLib")
GetGuid = Left(CStr(TypeLib.Guid), 38)
Set TypeLib = Nothing
End Function
它增加了一个vbNullChar或CHR(0)的GUID的末尾。替换(myGuid,Chr(0),“”)将修复它。比使用Left或Mid功能更好。
哦谢谢上帝,有人已经有这个。 – ChristianLinnell 2009-08-25 23:06:08