2009-01-05 11 views
12

Estoy creando un GUID para usar en una aplicación ASP clásica, mediante el uso de TypeLib. Sin embargo, incluso una simple prueba, como escribir el GUID en la pantalla, me está dando problemas: imprime el GUID pero ignora todo lo que queda después (por ejemplo, etiquetas HTML, palabras adicionales, etc.).La salida de un GUID en VBScript ignora todo el texto después de él

Aquí está el código rudimentaria 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 así 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 aparece bien. Intenté una conversión explícita a un valor de cadena antes de mostrarla, pero todavía sucede.

+0

Ohh gracias a Dios que alguien ya tenía esto. – ChristianLinnell

Respuesta

12

que parecen haber resuelto mi propio problema .. que estaba añadiendo algo extra para el texto, por lo que tenía que hacer:

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

y ahora se da salida bien. Extraño.

+0

¿Viste mi comentario de nuevo? es srange ... – Schwartser

+0

No es extraño si el GUID realmente es una estructura. La función Left debería convertirla en una cadena, por lo que puede trabajar con ella y devolver una cadena. – Tester101

+6

Scriptlet.TypeLib.Guid da una cadena terminada en nulo. Algo en el camino de su código a la pantalla utiliza la terminación nula y por lo tanto deja de producir cosas en el medio. – svinto

4

que usar algo como esto

Function GetGuid() 
     Set TypeLib = CreateObject("Scriptlet.TypeLib") 
     GetGuid = Left(CStr(TypeLib.Guid), 38) 
     Set TypeLib = Nothing 
End Function 
2

Se añade un vbNullChar o Chr (0) al final del GUID. Reemplazar (myGuid, Chr (0), "") lo arreglará. Mejor que usar las funciones Izquierda o Media.

Cuestiones relacionadas