PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کار با رشته ها(string)



ali.b
2014/10/08, 14:13
رشته ها عبارات، داده ها اعداد و ... موجود در یک برنامه هستند. در اینجا می خواهیم کار با این دسته از اطلاعات را بررسی نماییم. کار بارشته ها از این باب دارای اهمیت است که ما می توانید با بکار گیری مفاهیم زیر، بر داده های موجود در سلهای اکسل و یا ... مدیریت بهتری انجام دهیم. داده ها را تفکیک کنیم.طبقه بندی کنیم یا قسمت خاصی از یک داده را که برای ما اهمیت بیشتری دارد، مورد استفاده قرار دهیم.

الف- عملگر &
چنانچه بخواهیم دو رشته موجود در یک برنامه را پشت سر هم بیاوریم از این عملگر استفاده می نماییم.
مثال اول: برنامه ای خواهیم نوشت که در یک MASSAGE BOX دو عبارت VISUALوbasic را به هم ارتباط داده و نمایش دهد:

Sub aaa()
s1 = "visual basic"
s2 = " for aplcation"
s = s1 & s2
MsgBox s
End sub

ب- کد vbnewline یا chr(13)
این عملگر، عملیات inter را در محیطی مثل word انجام می دهد. به این معنی که رشته دوم در سر بعدی رشته اول نشان داده خواهد شد.
مثال دوم:می خواهیم در یک مسیج باکس عبارتVBA this class name is به صورتی که عبارت VBA در زیر عبارت قبلی قرار گیرد، نمایش داده شود.
رشته مورد نظر بایستی به شکل زیر نوشته شود:


Sub bbb()
s = "this class name is"
s = s & vbNewLine
s = s & "VBA"
MsgBox s
End Sub

نکته: از هر یک از عبارات vbnewline یا chr(13) می توان جهت استفاده در برنامه، بهره برد.

ج – تابع LEN:

این تابع تعداد کرکترهای موجود در رشته شما را می شمارد. توجه به این نکته حائز اهمیت است که رشته شما می تواند داده های موجود در یک سل اکسل باشد. ساختار کلی تابع LEN به شکل زیر می باشد:
Len( )
که در داخل پرانتز رشته مورد نظر ما قرار خواهد گرفت.

مثال سوم:می خواهیم تعداد کرکتر های موجود در نام Ali Fatehi توسط برنامه در یک مسیج باکس نمایش داده شود.برنامه مورد نظر ما با استفاده از تابع بالا می بایست شکلی مانند زیر داشته باشد:


Sub ccc()
s = Len("ALI FATEHI")
MsgBox s
End Sub

د- تابع left-right
این تابع به برنامه می گوید از سمت چپ یا راست رشته ما تعدادی را جدا کن و به ما نشان بده:
ساختار کلی این تابع به شکل زیر می باشد:

Left(string,i)
که در داخل پرنتز ابتدا رشته مورد نظر ما و سپس تعداد کرکتری که از این رشته می باست جدا و نمایش داده شود، جایگزین خواهد شد. این دو داده با یک علامت"," از هم جدا می شوند.

مثال چهارم:می خواهیم با استفاده از تابع فوق، برنامه ای بنویسیم که چهار رقم سال 1359 در تاریخ بسیار مهم 1359/12/22 را جدا نموده و نمایش دهد. ساختار چنین برنامه ای به شکل زیر نوشته خواهد شد:

Sub ddd()
s = "1359/12/22"
t = Left(s, 4)
MsgBox t
End Sub

ه- تابع :TRIM
این تابع هر چه کرکتر خالی قبل یا بعد رشته باشد را در نظر نگرفته و باقی مانده را در نظر می گیرد. با این توضیح واضح است که ما در این تابع با دو ساختار راست و چپ کار خواهیم داشت:
ساختار کلی به شکل زیر می باشد:

L/R TRIM()

مثال پنجم:می خواهیم در رشته ای مانند" VBA " تنها سه کلمه VBA نمایش داده شود. ساختار چنین برنامه ای به شکل زیر خواهد بود:


Sub eee()
s = " VBA"
t = Trim(s)
MsgBox t
End Sub

و- تابعMID :

این تابع به ما می گوید:
رشته را در نظر بگیر، از فلان جا شروع کن، این تعداد را به ما نشان بده. ساختار این تابع نیز دقیقا به همین شکل می باشد:

MID(STRING,START,LENGTH)

مثال ششم:می خواهیم برنامه ای بنویسیم که در عبارت visual basic تنها کلمه basic در یک مسیج باکس نمایش داده شود.برنامه به شکل زیر نوشته خواهد شد:


Sub fff()
s = "visual basic"
t = Mid(s, 8, 5)
MsgBox t
End Sub

ز- تابع INSTR

تابع INSTRدر رشته مورد نظر ازهر جایی که بخواهیم شروع می کند، رشته اول را در نظر می گیرد، دنبال رشته یا متغیر خاصی بگردد و شماره آن را به ما بگوید:

ساختار کلی به شکل زیر می باشد:

INSTR(START, STRING 1 , STRING 2)
که عبارات داخل پرنتز به ترتیب شروع جستجو، رشته مورد نظر و در نهایت عبارت مورد نظر در رشته، می باشد.
مثال هفتم: می خواهیم برنامه ای بنویسیم که در آن در زشته ای مانند aaapaa به ما بگوید که حرفP کدامین کرکتر این رشته می باشد:

Sub ggg()
s = "aaapaa"
i = InStr(1, s, "p")
MsgBox i
End Sub

مثال آخر:
یک تاریخ مشخص مانند تاریخ مهم 1355/12/22 را که با ممیز"/" از هم جدا شده اند را در نظر می گیریم. برنامه ای بنویسید که سال ماه و روز را جدا نموده و در سه کادر پیغام نمایش دهد.

Sub hhh()
s = "1359/12/22"
i = InStr(1, s,"/")
j = InStr(i + 1, s,"/")
y = Mid(s, 1, i – 1)
m = Mid(s, i + 1, (j - 1) – i)
d = Mid(s, j + 1)
MsgBox y
MsgBox m
MsgBox d
End Sub