PDA

View Full Version : سوال: توضیح کامل در مورد این تکه کد



daniyal_1363
شنبه 01 خرداد 1389, 22:06 عصر
سلام

اگه میشه یکی خط به خط این تکه کد رو توضیح بده (جاهایی که سبز شده لازم نیست)

کار نکردم با این تابع میخوام یاد بگریم:بامزه:



Function GetFileName(attach_str As String) As String
Dim s As Integer
Dim temp As String
s = InStr(1, attach_str, "\")
temp = attach_str
Do While s > 0
temp = Mid(temp, s + 1, Len(temp))
s = InStr(1, temp, "\")
Loop
GetFileName = temp
End Function

مهران رسا
یک شنبه 02 خرداد 1389, 00:08 صبح
s = InStr(1, attach_str, "\")تابع Instr : جستجوی رشته ای در رشته ی دیگر . در کد بالا مقدار متغیر s برابر با مکان شروع کاراکتر "\" در رشته attach_str خواهد بود.



Do While s > 0تا زمانی که کاراکتر "\" در رشته attach_str پیدا میشه حلقه ادامه داره ...


temp = Mid(temp, s + 1, Len(temp))تابع Mid : جدا کردن قسمتی از یک رشته . در کد بالا مقدار متغیر temp برابر خواهد بود با رشته ای که در رشته اصلی temp ، از مکان s+1 دارای طولی به اندازه طول رشته temp باشد.


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

pooya1072
یک شنبه 02 خرداد 1389, 01:14 صبح
در ادامه توضیحات دوستمون باید بگم تابع GetFileName از یک رشته که حاوی مسیر کامل یک فایله(مسیر و نام فایل) فقط اسم فایل رو جدا می کنه و بر میگردونه.


s = InStr(1, attach_str, "\")
در این قسمت مکان اولین جدا کننده مشخص میشه..یعنی باید نام پوشه ها از مسیر حذف بشه.
توی حلقه while هم این کار بطور کامل انجام میشه و تمامی نام پوشه ها از مسیر حذف میشن و در نهایت وقتی دیگه جدا کننده ای ("\") نموند ، اونوقته که متغیر s دیگه توی حلقه مقداری نمی گیره و آخرین مقدار ذخیره شده توی متغیر temp به عنوان نام فایل معرفی میشه

daniyal_1363
یک شنبه 02 خرداد 1389, 10:38 صبح
خیلی خیلی ممنون دوستان

تا حالا با تمامی توابع بالا بجر InStr کار کردم چون برای پیدا کردن نام و پسوند یه آدرس از راه زیر میرفتم



Function GetFileName(path1 As String) As String
Dim i As Integer
Do While Mid$(Trim$(path1), Len(path1) - i, 1) <> "\"
i = i + 1
Loop
GetFileName = Mid$(path1, Len(path1) - i + 1, i)
End Function





این تکه کد توی یه نمونه دیدم و خواستم بدونم چه جوری کار میکنه

ممنون از راهنمایی خوبتون دوستان