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
این تکه کد توی یه نمونه دیدم و خواستم بدونم چه جوری کار میکنه
ممنون از راهنمایی خوبتون دوستان
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.