Ответ 1
Кажется, я решил свою проблему.. он добавил что-то дополнительное в текст, поэтому мне пришлось делать:
myGuid = Left(myGuid, Len(myGuid)-2)
и теперь он выводится нормально. Странно.
Я создаю GUID для использования в классическом ASP-приложении, используя TypeLib. Однако даже простой тест, такой как написание 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
Он добавляет vbNullChar или Chr (0) в конец GUID. Заменить (myGuid, Chr (0), "") исправить. Лучше, чем использование функций Left или Mid.
Я использую это, как это =
With CreateObject("Scriptlet.TypeLib")
'' For Del This = {}
WSH.Echo mid(.Guid ,2, 36)
WSH.Echo (.Guid)
End With
GUID - это структура, а не строка, вам нужно добавить метод ToString() для вывода его в виде строки.
https://msdn.microsoft.com/fr-fr/library/97af8hh4(v=vs.110).aspx
Response.Write myGuid.ToString("D")