Вывод GUID в VBScript игнорирует весь текст после него

StackOverflow https://stackoverflow.com/questions/413367

  •  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")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top