09-10-12, 11:52 AM
كاتب الموضوع : 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 ?"
[/COLOR][color=#0000bb][/color][/COLOR]
المتغير النصي 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]_
ByVal e [/COLOR][color=#007700]As [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]EventArgs[/color][color=#007700]) [/color][color=#0000bb]Handles Button1[/color][color=#007700].[/color][COLOR=#0000bb]Click
Dim myString [/COLOR][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][COLOR=#dd0000]"BADRMEDIA"
[/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#0000bb]myString[/color][color=#007700].[/color][color=#0000bb]Chars[/color][color=#007700]([/color][color=#0000bb]0[/color][color=#007700]) & [/color][color=#0000bb]myString[/color][color=#007700].[/color][color=#0000bb]Chars[/color][color=#007700]([/color][color=#0000bb]4[/color][color=#007700]) & [/color][color=#0000bb]myString[/color][color=#007700].[/color][color=#0000bb]Chars[/color][color=#007700]([/color][color=#0000bb]8[/color][COLOR=#007700]))
[/COLOR][COLOR=#0000bb]End Sub
[/COLOR][/COLOR]
ستكون النتيجة " 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][/COLOR]
لنرى الآتي
كود :
[color=#000000][COLOR=#0000bb]Dim TestAppend [/color][color=#007700]As New [/color][COLOR=#0000bb]StringBuilder
MsgBox[/COLOR][color=#007700]([/color][color=#0000bb]TestAppend[/color][color=#007700].[/color][color=#0000bb]Capacity[/color][color=#007700].[/color][color=#0000bb]ToString[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
ستجد أن النتيجة للرسالة هى 16 أى أن السعة للمتغير هى 16
ماذا لو أظهر طول أكبر من 16
لنري
كود :
[color=#000000][COLOR=#0000bb]Dim TestAppend [/color][color=#007700]As New [/color][COLOR=#0000bb]StringBuilder
TestAppend[/COLOR][color=#007700].[/color][color=#0000bb]Append[/color][color=#007700]([/color][color=#dd0000]"12345678123456781"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#0000bb]TestAppend[/color][color=#007700].[/color][color=#0000bb]Capacity[/color][color=#007700].[/color][color=#0000bb]ToString[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
سنجد أن السعة تقول أنها 32 أى الضعف وهكذا