PDA

View Full Version : سوال: جستجو در کمبوباکس برای مقدار ورودی در تکس باکس



systam
یک شنبه 26 آذر 1391, 17:07 عصر
سلام دوستان
از عنوان پست مشخصه من یک پوشه حدود 1000 فایل ورد دارم که پیدا کردن فایل هایی که میخوام یکم طول میکشه
تصمیم گرفتم این برنامه رو بنویسم

این کد تابع ها اطلاعات فایل ها رو در پوشه مورد نظر فراخوانی کرده
Private Sub FindFile(ByVal Dir As DirectoryInfo, ByVal filename As String)
Try
' Here is where the exception is thrown if access is denied
Dim files() As FileInfo = Dir.GetFiles(filename.ToString)

If files.Length > 0 Then
' add the files to the listbox
cb1.Items.AddRange(files)
' search each subdirectory
For Each di As DirectoryInfo In Dir.GetDirectories
FindFile(di, filename)
Next
End If
Catch ex As Exception
MsgBox("Access denied to this folder")
End Try
فراخوانی و ریخت اطلاعات درون کنترول ها
Dim str As String = TextBox1.Text
Dim dir As DirectoryInfo = New DirectoryInfo("e:\تحقیق")
FindFile(dir, "*.docx")
cb1.SelectedIndex = 0
حا لا من این کد رو در قسمت تکس باکسم نوشتم با ورود حروف مثال ((حرف ر)) رو که میزنم مقاله هایی که با حرف (ر) شروع شدند برام داخل یک لیست باکس نمایش میده
تا اینجا مشکلی ندارم همه چیز دسته
ولی میخوام پیشرفته ترش کنم بین اسم های فایل ها رو برای من جستجو کنم کد با براساس حروف اول فایل هاست
اینم کد برای ورود اطلاعات در تکسباکس برای جستجو
Dim item_count As Integer
ListBox1.Items.Clear()
Dim b As Integer = Len(TextBox1.Text)
Dim a = 0
item_count = cb1.Items.Count
For i = 1 To item_count
cb1.SelectedIndex = a
a += 1
If Strings.Left(cb1.Text, b) = TextBox1.Text Then
ListBox1.Items.Add(cb1.Text)
ElseIf a = 0 Then
ListBox1.Items.Clear()
ListBox1.Items.Add("موردی یافت نشد")
End If
If TextBox1.Text.ToString = "" Then
ListBox1.Items.Clear()
End If
Next
دوستان راهنمایی کنند ممنون میشم


یا علی

مهرداد صفا
یک شنبه 26 آذر 1391, 18:17 عصر
سلام
دقیقا متوجه نشدم. قصد دارید بر اساس نام کامل فایل جستوجو کنید یا کلمات موجود در نام فایل؟
لطف کنید دقیقتر توضی دهید.

systam
یک شنبه 26 آذر 1391, 20:05 عصر
سلام
مثال اگر نام فایلی هست سید رضا یاوری
اگه من رضا و یا یاوری در داخل تکس تایپ کنم برای من لیست کنه فایل رو نمایش بده

systam
یک شنبه 26 آذر 1391, 21:21 عصر
فکر کنم باید از format.string استفاده کنم ولی نمیدونم چطوری

SHD.NET
یک شنبه 26 آذر 1391, 22:16 عصر
من خودم یه روش الان کشف کردم :لبخند: . اگه میتونی سورسشو بزار تا برات درستش کنم . آخه اینجوری نمیشه گفت

:چشمک:\\\موفق باشید///:چشمک:

مهرداد صفا
دوشنبه 27 آذر 1391, 09:39 صبح
سلام
مثال اگر نام فایلی هست سید رضا یاوری
اگه من رضا و یا یاوری در داخل تکس تایپ کنم برای من لیست کنه فایل رو نمایش بده


سلام
در هنگام جستجو در Combo، هر فایل را به کلمات تجزیه کنید و چک کنید که اگر هر یک از کلمات تجزیه شده با متن درون TextBox شروع میشوند فایل به لیست اضافه شود. به این صورت:

'in the name of god
'صل الله علی محمد و آله
Imports System.IO
Public Class Form1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ComboBox1.Items.AddRange((From file As FileInfo In New DirectoryInfo("e:\temp").GetFiles("*", SearchOption.AllDirectories) Select file.Name).ToArray)
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
ListBox1.Items.Clear()
If sender.text.length >= 1 Then

For Each File As String In ComboBox1.Items
If File.Length > 0 Then
For Each word As String In File.Split(" ", ".", "-", "_")
If word.StartsWith(sender.text) Then
ListBox1.Items.Add(File)
Exit For
End If
Next
End If
Next
End If
End Sub
End Class

SHD.NET
دوشنبه 27 آذر 1391, 15:32 عصر
این رو هم من نوشته بودم که میخواستم رو پروژتون اجراش کنم . سوسرس نمونش رو گذاشتم

:چشمک:\\\موفق باشید///:چشمک:

systam
دوشنبه 27 آذر 1391, 20:24 عصر
از کمک هر دو بزرگوار ممنونم
که بنده حقیقر رو راهنمایی کردید

یا علی