Вывод GUID в VBScript игнорирует весь текст после него
-
03-07-2019 - |
Вопрос
Я создаю GUID для использования в приложении Classic 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 и ссылаюсь на него из переменной, остальная часть текста выглядит просто отлично. Я пробовал явное преобразование в строковое значение перед отображением, но это все же происходит.
Решение
Кажется, я решил свою собственную проблему ... это было добавление чего-то дополнительного к тексту, поэтому мне пришлось сделать следующее:
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.
GUID - это структура, а не строка, вам нужно добавить метод ToString (), чтобы вывести его в виде строки.
https://msdn.microsoft. ком / FR-FR / библиотека / 97af8hh4 (v = vs.110) .aspx р>
Response.Write myGuid.ToString("D")