معلومة ::: StringBuilder - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الاقسام الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=74) +--- قسم : قسم المقالات العام (http://vb4arb.com/vb/forumdisplay.php?fid=85) +--- الموضوع : معلومة ::: StringBuilder (/showthread.php?tid=5437) |
معلومة ::: StringBuilder - RaggiTech - 09-10-12 كاتب الموضوع : BADRMEDIA
المتغير النصي String واحد من أكثر أنواع البيانات ( Data Type ) استخداماً وشهرة فى لغة الفيجوال بيسك كود : [color=#000000][COLOR=#0000bb]Dim myString [/color][color=#007700]as [/color][color=#0000bb]String [/color][color=#007700]= [/color][COLOR=#dd0000]"Are You Register In VB4ARAB ?" المتغير النصي String نستطيع أن نوصفه أنه مصفوفة من الحروف ، ونستطيع أن نتعامل معه كما لو كان مصفوفة ولننظر فى هذا الكود كود : [color=#000000][COLOR=#0000bb][/color][color=#007700]Private [/color][color=#0000bb]Sub DisplayAcronym_Click[/color][color=#007700]( [/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Object[/color][color=#007700], [/color][COLOR=#0000bb]_ ستكون النتيجة " BMA " إذن تعاملنا مع المتغير النصي كأنه مصفوفة من الحروف ونصل لأى منها برقم الفهرس تصف وثائق مايكروسوفت The Microsoft documentation الــــ String بأنه "immutable" وذلك يعنى أنه لا يمكن تغييره ، ولكننا نعرف أنه يمكن تغييره بسهولة حجم البيانات داخل هذا المتغير ، ذكرت مايكروسوفت أنها تبدأ من 0 حتي قرب 2 بليون حرف يونيكود "0 to approximately 2 billion (2 ^ 31) Unicode characters
ماذا لو احتجت حجم أكبر ، لذلك ظهر فى دوت نت 2008 هذا النوع الجديد Stringbuilder أنه أسرع أكبر من النوع String Stringbuilder له طرق وخصائص لابد أن تتعرف عليها منها : Append : وهى مثل المعامل ( & ) أو ( + ) Length : يعطى الطول الحقيقى للبيانات المخزنة داخل Stringbuilder Insert, Remove, Replace : مثل ما كانت فى المتغير String ------------------------------------------------------------------------------ تستطيع أن تحدد السعة ( Capacity ) المطلوبة لحفظ البيانات داخل المتغير الجديد Stringbuilder لنبدأ فى التعامل معه لابد أن نضيف فضاء الاسم ( Name Space ) System.Text قبل استعمال المتغير الجديد أو ذكر اسم الفضاء قبل استخدامه مثل ذلك كود : [color=#000000][COLOR=#0000bb]Dim TestAppend [/color][color=#007700]As New [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700].[/color][COLOR=#0000bb]StringBuilder لنرى الآتي كود : [color=#000000][COLOR=#0000bb]Dim TestAppend [/color][color=#007700]As New [/color][COLOR=#0000bb]StringBuilder ستجد أن النتيجة للرسالة هى 16 أى أن السعة للمتغير هى 16 ماذا لو أظهر طول أكبر من 16 لنري كود : [color=#000000][COLOR=#0000bb]Dim TestAppend [/color][color=#007700]As New [/color][COLOR=#0000bb]StringBuilder سنجد أن السعة تقول أنها 32 أى الضعف وهكذا معلومة ::: StringBuilder - RaggiTech - 09-10-12 ماذا لو أردنا أن يكون الحجم محدد - بمعنى تحديد حجم البداية والنهاية نستطيع التحكم في ذلك تستطيع تحديد بداية السعة وتحدد سعة النهاية كود : [color=#000000][COLOR=#0000bb]Dim TestAppend [/color][color=#007700]As New [/color][color=#0000bb]StringBuilder[/color][color=#007700]([/color][color=#0000bb]10[/color][color=#007700], [/color][color=#0000bb]20[/color][COLOR=#007700]) لو قمت بادخال حجم بيانات أكبر أو أقل من الحجم المحدد هنا وهو 10 : 20 سيقوم ArgumentOutOfRangeException باظهار Exception معلومة ::: StringBuilder - RaggiTech - 09-10-12 ذكرنا أن StringBuilder أسرع كيف ذلك ؟ سنجد مثال هنا يفرق بين استخدام And "& " واستخدام Append تكتب القيمة فى مربع النص NumberOfIterations وتضغط على الزر واطلع على النتيجة ============================================ المثال ليس من تأليفي - لكن قمت بجمعه من شروحات |