سؤال

وأنا خلق GUID للاستخدام في تطبيق كلاسيكي 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 أو مركز حقوق الانسان (0) في نهاية GUID. استبدال (myGuid، مركز حقوق الانسان (0)، "") سوف إصلاحه. أفضل من استخدام وظائف اليسار أو منتصف.

وGUID هو البنية وليس سلسلة، تحتاج إلى إضافة أسلوب ToString () لإخراج كسلسلة.

https://msdn.microsoft. كوم / FR-الاب / مكتبة / 97af8hh4 (ت = vs.110) .aspx اتصال

Response.Write myGuid.ToString("D")
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top