إخراج GUID في VBScript يتجاهل كل النص بعد ذلك
-
03-07-2019 - |
سؤال
وأنا خلق 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")