Pergunta

Estou criando um GUID para uso em um aplicativo ASP clássico, usando TypeLib. No entanto, mesmo um teste simples, como escrever o GUID para a tela está me dando problemas - ele imprime o GUID mas ignora tudo depois dele (por exemplo, tags HTML, palavras adicionais, qualquer coisa)

.

Aqui está o código rudimentar para testar esta:

Set typeLib = Server.CreateObject("Scriptlet.TypeLib")
myGuid = typeLib.Guid
Response.Write myGuid & " is the new GUID"
Set typeLib = Nothing

Isto irá exibir algo como {9DDB27D1-F034-41D7-BB88-D0D811DB91CE} e é isso; o resto do texto é ignorado e não é escrito para fora. No entanto, se eu codificar esse valor GUID e referência-lo de uma variável, o resto do texto aparece apenas multa. Eu tentei conversão explícita para um valor de cadeia antes de exibir, mas ainda acontece.

Foi útil?

Solução

I parecem ter resolvido o meu problema .. ele estava adicionando algo extra para o texto, então eu tinha que fazer:

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

e bem agora saídas. Strange.

Outras dicas

Eu uso algo como isto

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

Ele adiciona um vbNullChar ou Chr (0) no final do GUID. Substituir (myGuid, Chr (0), "") irá corrigi-lo. Melhor do que usar funções de esquerda ou no meio.

GUID é um struct e não uma string, você precisa adicionar um método ToString () para a saída-lo como uma string.

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

Response.Write myGuid.ToString("D")
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top