PDA

View Full Version : جستجو در فایل



proreza2
جمعه 26 آذر 1389, 20:24 عصر
سلام دوستان
میخواهم برنامه ای بنویسم که یک فایل تکست از ما بگیره وجستجو کنه ببینه یک کلمه چند بار تکرار شده اسم کلمه را همراه با تعداد تکراراش بنویسه
ممنون

xxxxx_xxxxx
جمعه 26 آذر 1389, 21:49 عصر
سلام،
1) فایل رو به صورت Binary باز کنید.
2) با دستور Get کل محتوای فایل رو در یک متغیر ذخیره کنید.
3) تابع Split رو روی متغیر، با کلمه موردنظرتون برای جستجو اعمال کنید.
4) حد بالای (UBound) آرایه تولید شده حاصل از تابع Split برابر هست با تعداد دفعات تکرار اون کلمه در کل متن.

موفق باشید/

proreza2
جمعه 26 آذر 1389, 22:42 عصر
ممنون دوست عزیز اگر یک مثالی چیزی بود خوب میشد ما که مبتدی هستیم

mohsen_archi
جمعه 26 آذر 1389, 23:31 عصر
با سلام
ببین سورس زیر کارتو راه میندازه

proreza2
یک شنبه 28 آذر 1389, 17:21 عصر
ممنون دوست عزیز
چه جوری میشه یک قسمت هم به برنامه اضافه کرد که اسم کلمه را بدیم خودش جستجو کنه ببینه چند بار تکرار شده
ممنون

mohsen_archi
دوشنبه 29 آذر 1389, 00:20 صبح
این کد رو


For i = 1 To Len(fff)
If Mid(fff, i, 1) = Chr(32) Then
qqq = Right(fff, Len(fff) - i)
ggg = Mid(qqq, 1, InStr(qqq, " "))
bbb = qqq
qqq = Trim(Right(qqq, Len(qqq) - (Len(ggg) - 1)))
If InStr(Left(fff, i), ggg) = 0 Then
List1.AddItem ggg
kk = 0
1
If InStr((bbb), (ggg)) > 0 Then kk = kk + 1 Else GoTo 2
If Len(bbb) > (InStr((bbb), Trim(ggg)) + Len(ggg) - 1) Then bbb = Right((bbb), Len(bbb) - (InStr(Trim(bbb), (ggg)) + Len(ggg) - 1)) Else GoTo 2
If InStr((bbb), (ggg)) > 0 Then GoTo 1
2
List2.AddItem kk
End If
End If
Next

به این تغییر بده که مثلا دنبال کلمه Ali بگرده


qqq = fff
ggg = "Ali"
bbb = qqq
qqq = Trim(Right(qqq, Len(qqq) - (Len(ggg) - 1)))
If InStr(Left(fff, i), ggg) = 0 Then
List1.AddItem ggg
kk = 0
1
If InStr((bbb), (ggg)) > 0 Then kk = kk + 1 Else GoTo 2
If Len(bbb) > (InStr((bbb), Trim(ggg)) + Len(ggg) - 1) Then bbb = Right((bbb), Len(bbb) - (InStr(Trim(bbb), (ggg)) + Len(ggg) - 1)) Else GoTo 2
If InStr((bbb), (ggg)) > 0 Then GoTo 1
2
List2.AddItem kk
End If

proreza2
دوشنبه 29 آذر 1389, 00:49 صبح
مثلا کلمه را از یک تکست بگیره

mohsen_archi
دوشنبه 29 آذر 1389, 10:15 صبح
مثلا کلمه را از یک تکست بگیره

یک تکست باکس اضافه کنید و به جای


ggg="Ali"

قرار بدید


ggg= Text2.Text

proreza2
چهارشنبه 01 دی 1389, 23:07 عصر
Private Sub Command1_Click()
Dim fff As String
Open Text1.Text For Input As #1
While EOF(1) = False
Line Input #1, kkk
fff = fff & " " & kkk
If Text2.Text = "" Then Text2.Text = kkk Else Text2.Text = Text2.Text & vbCrLf & kkk
Wend
Close
qqq = fff
ggg = Textbox2.Text
bbb = qqq
qqq = Trim(Right(qqq, Len(qqq) - (Len(ggg) - 1)))
If InStr(Left(fff, i), ggg) = 0 Then
List1.AddItem ggg
kk = 0
1
If InStr((bbb), (ggg)) > 0 Then kk = kk + 1 Else GoTo 2
If Len(bbb) > (InStr((bbb), Trim(ggg)) + Len(ggg) - 1) Then bbb = Right((bbb), Len(bbb) - (InStr(Trim(bbb), (ggg)) + Len(ggg) - 1)) Else GoTo 2
If InStr((bbb), (ggg)) > 0 Then GoTo 1
2
List2.AddItem kk
End If
End Subیعنی کد کلا اینجوری میشه!!!ارور میده