دسته
لينك هاي دسترسي سريع
مطالب من در ثبت مطالب روزانه
آرشیو
آمار وبلاگ
تعداد بازدید : 1157167
تعداد نوشته ها : 1368
تعداد نظرات : 348
Rss
طراح قالب
مهدي يوسفي
Day .41 روز یک تاریخ رو برمیگردونه.مثلا (Day(Now عدد 5 رو برمیگردونه.

DDB .42

DeleteSetting .43 تنظیماتی که با تابع SaveSetting توی رجستری ذخیره شده (value ها)رو پاک میکنه.واسه توضیح بیشتر به SaveSetting مراجع کنین.

Dir .44 فایل ها و فولدر های داخل یه فولدر(یا درایو) رو برمیگردونه.که میشه با مشخص کردن Attribute فایل ها یا فولدر های خاص رو بدست آورد.آرگومانی که میگیره یه رشتس که Path مورد نظر هستش که میشه توش از کاراکتر هایی مثل * و ؟ هم استفاده کرد.
مثلا میخوامیم همه ی فایل های با پسوند .sys رو که توی درایو C هستن بدست بیاریم.
برای اولین بار تابع Dir رو با دادن مقدار “C:\*.sys” فراخوانی میکنیم.مقدار برگشتیش اولین فایل با پسوند bat هست که توی درایو C (فقط درایو C یعنی شامل SubDirectory ها نمیشه) پیدا میکنه.برای بدست آوردن دومین فایل تابع رو بدون دادن مقدار بهش فراخوانی میکنیم ()Dir که مقدار برگشتیش همون دومین فایل هستش.این کار رو تا زمانی که مقدار برگشتی "" (رشته ی خالی) نباشه ادامه میدیم.کدش به این صورت میشه:

Private Sub CmdPrintDirs_Click()
Dim strPath as String,strDir as String
strPath = "C:\*.sys"
strDir = Dir(strPath)
Do
Print strDir
strDir = Dir()
Loop While strDir <> ""
End Sub

البته اگه Attribute رو درست تعیین نکنین همه فولدر ها و فایل ها برگردونده نمیشن.مثلا با قرار دادن این مقدار :
vbArchive Or vbDirectory Or vbHidden Or vbNormal Or vbReadOnly Or vbSystem
به جای Attribute میشه گفت همه فایل ها و فلدر ها (چه سیستم چه معمولی و...) برگردونده میشن.برای بدست آوردن فقط Directory ها به این صورت عمل کنین که به Attribute ، vbDirectoy رو هم اضافه کنین. بعد از اینکه اسم دایرکتوری ها رو گفتین باز هم با تابع GetAttr چک کنین که اسمی که برگردونده شده حتما Directory هستش :

Private Sub CmdPrintDirs_Click()
Dim strPath As String, strDir As String
strPath = "C:\"
strDir = Dir(strPath, vbDirectory)
Do
If (GetAttr(strPath & strDir) And vbDirectory) = vbDirectory Then
Print strDir
End If
strDir = Dir()
Loop While strDir <> ""
End Sub

اینو نگفتم که اگه بعد از مسیری که مشخص کردین اینجا (\:c) چیزی نگذارین همه فایل ها و فولدر هاش در نظر گرفته میشن.

DoEvents .45 این تابع رو وقتی دارین توی برنامتون از یک حلقه تکرار که ممکنه تموم شدنش طول بکشه استفاده میکنین توی حلقه فراخوانی کنین.حالا چکار میکنه؟
بطور عادی وقتی دارین توی یه حلقه تکرار(یا هر کدی!!) یکسری محاسبات رو انجام میدین تا زمانی که حلقه تموم نشه برنامتون در مقابل Message هایی که بش ارسال میشه عکس العملی انجام نمیده و همه عکس العمل ها رو بعد از تموم شدن حلقه انجام میده و یا اگه شما توی حلقه یه کدمربوط به چاپ کردن یه رشته روی فرم رو نوشته باشین عمل چاپ شدن رو بعد از تمام شدن حلقه مشاهده میکنین.به قولی تا زمان پایان حلقه برنامه هیچ Event ی انجام نمیده(البته این مساله 100 در 100 هم نیست).تابع DoEvents این کار رو براتون میکنه.این دو کد رو تست کنین :

Private Sub Command1_Click()
Dim i As Long
Do While i < 10000000
i = i + 1
If i < 20 Then List1.AddItem i
Loop
End Sub
Private Sub Command1_Click()
Dim i As Long
Do While i < 10000000
i = i + 1
If i < 20 Then List1.AddItem i
DoEvents
Loop
End Sub

وقتی دکمه رو توی کد اول فشار میدین تا زمانی که حلقه تموم نشده نمیتونین اعضای اضافه شده رو توی لیست باکس ببینین یا فرم رو حرکت بدین.در صورتی که در کد دوم این طور نیست.

46. Environ (و Environ$) این تابع با گرفتن عدد ها(اینجا index ها) ی بیشتر از 0 و یا رشته ها اطلاعات خاصی از سیستم مثل دایرکتوری ویندوز Program Files ، Temp و یا UserName یا تعداد پردازشگر ها و ... رو برمیگردونه.با دادن عدد های مختلف از 1 به بالا مقدار های مختلفش رو میتونین ببینین.رشته هایی رو هم میگیره مثل WinDir یا OS یا SystemDrive یا ... که این رشته ها رو با استفاده از اعداد میتونین بدست بیارین :

Private Sub Command1_Click()
Dim strEv As String, i As Integer
i = 1
Do
strEv = Environ(i)
Print strEv
i = i + 1
Loop While strEv <> ""
End Sub

EOF .47 برای کار با فایل هاست که با دادن شماره ای که باهاش فایل رو باز کردین میتونین بفهمین به آخر فایل رسیدین یا نه.

Err .48 آبجکتیه که اطلاعات مربوط به آخرین خطایی(منظور Runtime Error) که توی کد اتفاق افتاده رو نگه میداده.مثلا :
Err.Number شماره خطا Err.Clear پاک کردن خطا (همه اطلاعات در مورد آخرین حذف میشه و فرض بر این میشه که خطایی اتفاق نیفتاده باشه) Err.Description توضیح خطا Err.Source منبع خطا.Err.Raise هم یه خطا تولید میکنه!!

Error .49 اگه این تابع رو برابر یه مقدار قرار نداره باشین کار Err.Raise رو میکنه با این فرق که فقط شماره خطا رو میگیره(به تعداد آرگومان هایی که میگیرن توجه کنین) (در این حالت میشه گفت اصلا تابع نیست!) در غیر این صورت توضیح خطایی که تولید کرده رو هم برمیگردونه

Error$ .50 فقط حالت دوم Error هستش

Exp .51 معادلش توی ریاضی e x

FileAttr .52 با گرفتن شماره ای که فایل باش باز شده Attribute هاش رو برمیگردونه.مثلا :

Private Sub Command1_Click()
Open "C:\io.sys" For Random As #1
If FileAttr(1) And vbSystem Then
MsgBox "This is a Syetem file!"
End If
Close #1
End Sub

FileCopy .53 واسه کپی کردن فایل هستش که آرگومان اولی آدرس فایل مبدا و بعدی مقصده.اگه فایل مقصد وجود داشته باشه عمل کپی انجام نمیشه.

FileDateTime آدرس یه فایل رو میگیره و زمان آخرین ویرایش یا زمانی که درست شده رو برمیگردونه.

FileLen .54 آدرس یه فایل رو میگیره و طولش رو برمیگردونه.(به بایت)

Fix .55 یه چیزی شبیه تابع براکت توی ریاضی هستش با این فرض که اعداد منفی رو رو به بالا گرد میکنه .مثلا:

Fix(2.1) = 2 و Fix(-2.1) = -2

Filter .56 یه آرایه رشته ای میگیره و آرایه ی جدیدی رو برمیگردونه به طوری که اون آرایه شامل عضو هایی از آرایه ی اول میشه که یک رشته ی خاص رو دارا هستن یا دارا نیستن.(تابع 2 حالت داره).آرگومان اول آرایه مورد نظره.دومی رشته ی مورد نظره.سومی اگه False باشه اون عضو هایی که شامل رشته نیستن انتخاب میشن و برگردونده میشن و اگه True باشه عضو هایی که شامل رشته هستن.بعدی هم نوع مقایسه هست که توی توضیح تابع InStr درموردش توضیح دادم.اونجا رو ببینین.
مثلا این آرایه رو تصور کنین :

Dim MainArr(3) As String
MainArr(0) = “Visual Basic”
MainArr(1) = “Visual C++”
MainArr(2) = “W32 Assembly”
MainArr(3) = “Java Script”

حالا ما میخوایم همه ی اون عضو هایی از MainArr که کلمه ی Visual داخلشون نیست رو توی یک آرایه دیگه ذخیره کنیم :

Dim NewArr() As String
NewArr = Filter(MainArr,”Visual”,False)

با این کد عضو های آرایه NewArr ، W32 Assembly و Java Script میشن.اگه به جای False از True استفاده میکردین عضو ها Visual Basic و++ Visual C میشدن.

Format .57 (و Format$)یه تابع پر کاربرده که کارهای زیادی در رابطه با رشته ها میکنه و اگه بخوام همشونو بگم به اندازه ای که تاحالا نوشتم باید بنویسم!!در کل یه رشته به عنوان آرگومان اول میگیره.دومی هم یه رشتس که Style یا حالت یا همون فرمت اون رشته رو تعیین میکنه .مثلا میخواهین با داشتن ثانیه – دقیقه و ساعت،زمان رو با فرمت درست بدست بیارین :

MsgBox (Format("125802", "00:00:00"))

و کار های زیاد دیگه ای میشه باش کرد که بیشتر از این حال نداریم توضیح بدم.خودتون دنبالش برین میفهمین... .

FormatCurrency .58 این تابع یه عدد رو به نوع Currency (نوعی که توی ویبی برای نگه داشتن مقدار پول بکار میره) با فرمت دلخواه تبدیل میکنه.آرگومان اول عدد مورد نظره.آرگومان های بعدی اختیاری هستن: دومی تعداد صفرهایی که بعد از عدد و نقطه ی آخر اون نشون داده میشن هستش که بطور پیشفرض 1-(Default) هستش و برای من 2 تا نشون میده مثلا 100 رو 100.00 نشون میده.

آرگومان بعدی مشخص میکنه که برای عدد های کسری .0 قبل از عدد رو نشون بده یا نه.بعدی مشخص میکنه که برای عدد های منفی از پرانتز استفاده بشه یا نه.بعدی مشخص میکنه که عدد هارو (سه تا سه تا) با کاما گروه بندی کنه یا نه.مثلا 100000 رو 10,000 نشون بده یا نه.یه مثال کلی : FormatCurrency(10000,3,vbTrue,vbTrue,vbTrue)مقدار 10,000.000$ رو برمیگردونه.
این رو هم بگم که آرگومان های 3 ، 4 و 5 به غیر از vbTrue و vbFalse مقدار vbUseDefault رو هم میتونن بگیرن که این مقدار به مقدار بیشفرض که به تنظیم های ویندوز بستگی داره ارجاع میکنه.

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

FormatDateTime(Now(), vbGeneralDate) = 10/5/2005 10:49:07 PM

FormatNumber .60 مثل FormatCurreny هستش با 2 تا فرق.یکی اینکه علامت دلار ($) کنار عدد نمیگذاره. یکی دیگه اینکه اگه مقدار منفی باشه و آرگومان 3 False ، علامت منفی رو کنار عدد نشون میده.

پنج شنبه بیست و ششم 10 1387
X