La salida de un GUID en VBScript ignora todo el texto después de él
-
03-07-2019 - |
Pregunta
Estoy creando un GUID para usar en una aplicación ASP clásica, usando TypeLib. Sin embargo, incluso una prueba simple, como escribir el GUID en la pantalla, me está dando problemas: imprime el GUID pero ignora todo después (por ejemplo, etiquetas HTML, palabras adicionales, cualquier cosa).
Aquí está el código rudimentario para probar esto:
Set typeLib = Server.CreateObject("Scriptlet.TypeLib")
myGuid = typeLib.Guid
Response.Write myGuid & " is the new GUID"
Set typeLib = Nothing
Esto mostrará algo como {9DDB27D1-F034-41D7-BB88-D0D811DB91CE} y eso es todo; el resto del texto se ignora y no se escribe. Sin embargo, si codifico ese valor GUID y lo referencia desde una variable, el resto del texto parece estar bien. Intenté la conversión explícita a un valor de cadena antes de mostrar, pero aún sucede.
Solución
Parece que he resuelto mi propio problema ... estaba agregando algo extra al texto, así que tuve que hacer:
myGuid = Left(myGuid, Len(myGuid)-2)
y ahora sale bien. Extraño.
Otros consejos
Yo uso algo como esto
Function GetGuid()
Set TypeLib = CreateObject("Scriptlet.TypeLib")
GetGuid = Left(CStr(TypeLib.Guid), 38)
Set TypeLib = Nothing
End Function
Agrega un vbNullChar o Chr (0) al final del GUID. Reemplazar (myGuid, Chr (0), " ") lo arreglará. Mejor que usar las funciones Izquierda o Media.
GUID es una estructura y no una cadena, debe agregar un método ToString () para generarlo como una cadena.
https://msdn.microsoft. com / fr-fr / library / 97af8hh4 (v = vs.110) .aspx
Response.Write myGuid.ToString("D")