Вывод GUID в VBScript игнорирует весь текст после него - PullRequest
12 голосов
/ 05 января 2009

Я создаю 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 и ссылаюсь на него из переменной, остальная часть текста выглядит просто отлично. Я пробовал явное преобразование в строковое значение перед отображением, но это все еще происходит.

Ответы [ 4 ]

12 голосов
/ 05 января 2009

Кажется, я решил свою собственную проблему ... это было добавление чего-то дополнительного к тексту, поэтому мне пришлось сделать:

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

и теперь выводит нормально. Странно.

4 голосов
/ 09 октября 2010

Я использую что-то вроде этого

Function GetGuid() 
        Set TypeLib = CreateObject("Scriptlet.TypeLib") 
        GetGuid = Left(CStr(TypeLib.Guid), 38) 
        Set TypeLib = Nothing 
End Function 
2 голосов
/ 15 декабря 2013

Добавляет vbNullChar или Chr (0) в конце GUID. Заменить (myGuid, Chr (0), "") исправит это. Лучше, чем использование функций Left или Mid.

0 голосов
/ 05 января 2009

GUID - это структура, а не строка, вам нужно добавить метод ToString (), чтобы вывести его в виде строки.

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

Response.Write myGuid.ToString("D")
...