در خواست آموزش سرچ فایل در ویژوال بیسیک

DJ_Baba

Member
سلام
من می خواستم با وی بی بتونم فایل سرچ کنم در درایو ها
اگه میشه در حد مبتدی باشه
 

the_king

مدیرکل انجمن
دستور اصلی که باید استفاده کنید تابع Dir است، اما این دستور دو تا عیب بزرگ داره،
اول اینکه فقط یک روتین می تونه در یکزمان ازش استفاده کنه، و اگه دو تا روتین بخواهند
هر دو از این تابع استفاده کنند، تداخل پیش میاد.
دومین عیب Dir اینه که فقط محتویات یک پوشه را می گرده و کاری به محتویات زیر پوشه های داخلش نداره.
مثلا وقتی شما مسیر درایو :C را بهش بدهید، داخل پوشه C:\Windows را جستجو نمی کنه.

من یک تابع ساختم به اسم SearchFiles که از شما چندین پارامتر را می خواهد :
Path مسیری که می خواهید در آن جستجو کنید مثلا :
کد:
C:\
C:\WINDOWS
E:\Games\GTA
FileName نام فایلی است که دنبالش می گردید، مثلا :
کد:
*.exe
جستجوی فایلهای اجرایی
Readme
جستجوی فایلهایی که در نام آنها عبارت مورد نظر باشد.
a
فایلهایی که در نام یا پسوند آنها حرف ای باشد.
*.*
همه فایلهایی که پسوند دارند.
*
همه فایلها، چه پسوند داشته باشند و چه نداشته باشند.
Files یک آرایه از نوع رشته ای که باید بصورت دینامیک طولش تغییر کنید مثلا :
کد:
Dim MyFiles() As String
فایلهای جستجو شده در این آرایه قرار می گیرند.
BaseIndex اندیس اولین فایلی که قرار است در آرایه قرار بگیرد، مقدار متعارف آن صفر است.
SubFolders یک مقدار Boolean است، اگر True باشد زیر پوشه ها را هم جستجو می کند.
این تابع از یک تابع API ویندوز استفاده می کند به نام PathIsDirectory.
PathIsDirectory یک مسیر را از شما می گیرد و مشخص می کند که آیا یک پوشه است یا نه.
می توانیم از تابع GetAttr موجود در خود VB هم برای این منظور استفاده کنیم ولی در بعضی از پوشه ها
خطای دسترسی به پوشه کار را مشکل می کند.

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

من یک برنامه جستجو را همراه با فایل اجرایی exe بصورت zip شده ضمیمه این پست کردم :
 

پیوست ها

  • SearchFile.zip
    18.3 کیلوبایت · بازدیدها: 163
آخرین ویرایش توسط مدیر:

DJ_Baba

Member
فقط میشه بگی من چطوری می تونم وقتی یکی از فایل های پیدا شده را انتخاب کردم با زدن کلید مثلا add اون آدرس رو بفرستم به TextBox؟
 

the_king

مدیرکل انجمن
البته، وقتی شما یکی از سطرهای یک ListBox را انتخاب می کنید، Text مقدار اون سطر را نشون می ده :
حالا فرض کنیم که نام ListBox ما LstFiles باشه (در برنامه ای که من نوشتم) و نام TextBox شما Text1 باشه
و شما بعد از انتخاب کردن یک فایل، روی دکمه ای کلیک کنید به نام Command1.

کد:
Private Sub Command1_Click()
    Text1.Text = LstFiles.Text
End Sub

با این کد محتویات اون سطر انتخاب شده منتقل میشه داخل TextBox.
البته من توصیه می کنم که این کد را برای DblClick کردن روی خود ListBox هم تعریف کنید :

کد:
Private Sub LstFiles_DblClick()
Text1.Text = LstFiles.Text
End Sub
 

جدیدترین ارسال ها

بالا