L'output di un GUID in VBScript ignora tutto il testo dopo di esso
-
03-07-2019 - |
Domanda
Sto creando un GUID da utilizzare in un'applicazione ASP classica, usando TypeLib. Tuttavia, anche un semplice test come la scrittura del GUID sullo schermo mi sta dando problemi: stampa il GUID ma ignora tutto dopo di esso (ad esempio tag HTML, parole aggiuntive, qualsiasi cosa).
Ecco il codice rudimentale per testare questo:
Set typeLib = Server.CreateObject("Scriptlet.TypeLib")
myGuid = typeLib.Guid
Response.Write myGuid & " is the new GUID"
Set typeLib = Nothing
Questo mostrerà qualcosa come {9DDB27D1-F034-41D7-BB88-D0D811DB91CE} e basta; il resto del testo viene ignorato e non viene scritto. Tuttavia, se codifico il valore GUID e lo faccio riferimento da una variabile, il resto del testo appare bene. Ho provato la conversione esplicita in un valore String prima della visualizzazione, ma succede ancora.
Soluzione
Mi sembra di aver risolto il mio problema .. stava aggiungendo qualcosa in più al testo, quindi ho dovuto fare:
myGuid = Left(myGuid, Len(myGuid)-2)
e ora emette bene. Strano.
Altri suggerimenti
Uso qualcosa del genere
Function GetGuid()
Set TypeLib = CreateObject("Scriptlet.TypeLib")
GetGuid = Left(CStr(TypeLib.Guid), 38)
Set TypeLib = Nothing
End Function
Aggiunge un vbNullChar o Chr (0) alla fine del GUID. Sostituisci (myGuid, Chr (0), " ") lo risolverà. Meglio che usare le funzioni Left o Mid.
GUID è una struttura e non una stringa, è necessario aggiungere un metodo ToString () per emetterlo come stringa.
https://msdn.microsoft. com / it-iT / library / 97af8hh4 (v = vs.110) aspx
Response.Write myGuid.ToString("D")