PDA

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



هادی123
شنبه 15 مهر 1385, 22:06 عصر
با سلام


چگونه می توانم در یک فایل متنی عمل جستجو را انجام داده و تعداد کلمه مورد نظر در فایل متنی رو بدست آورم ؟


با تشکر

mostafa_leman
شنبه 15 مهر 1385, 23:54 عصر
با استفاده از تابع Instr میتونید کلمه مورد نظر روی توی یک رشته سرچ کنید . تعدادشو هم باید خودتون کنترل کنید

amirsadeghi
یک شنبه 16 مهر 1385, 09:06 صبح
سلام
اولین کار باز کردن فایل متنیه بعد بهتره اونو توی یه تکست باکس بریزی تا جستجو راحت تر باشه
بعد بررسی میکنی از اول تا اولین فاصله میشه کلمه اول از فاصله اول تا فاصله دوم میشه کلمه دوم و همینطور الی آخر تعدادش رو هم خودت بررسی می کنی
اگه مشکلی داشتی بازم بگو

هادی123
یک شنبه 16 مهر 1385, 10:15 صبح
با تشکر از دوستان

من با این کد به یک نتایجی رسیدم


row = ds.Tables("t1").Rows(a
Do While objReader.Peek() <> -1
str = objReader.ReadLine
If str.Contains(row("name")) = True Then
s = s + 1
name = row("name
End If
Loop


در واقع رکوردی را از بانکم می خونه و در فایل متنی جستجو می کنه و به ازای هر بار پیدا کردن به مقداد s یک واحد اضافه می کنه

ولی یک ایراد داره اون هم اینکه اگر در یک خط دو کلمه هم نام باشه تنها یکی رو جستجو می کنه و به خط بعد می ره

اگرچه همین کد مشکلم رو حل می کنه چون تو فایل متنی مورد نظر من غیر ممکنه در یک خط دو کلمه هم نام وجود داشته باشه

zarrin_306
یک شنبه 16 مهر 1385, 12:51 عصر
من توی msdn در این مورد جستجو کردم چیزهای قابل توجهی تونستم بدست بیارم
شما هم اگر بگردی پیدا خواهی کرد

هادی123
سه شنبه 18 مهر 1385, 17:01 عصر
دوستان یک مشکل دیگر برام پیش آمده نمی دانم باید چی کار کنم

فرض کنید کلمه مورد جستجو کلمه "با" می باشد در اینصورت کلمات "بابا" ، "بیابان" ، باران و ... رو هم می شماره

amirsadeghi
سه شنبه 18 مهر 1385, 19:40 عصر
راحت ترین کار اینه که بررسی کنی هر دوطرف کلمه مورد نظر فاصله هست یا نه
اگه هر دو طرفش فاصله بود بعد به تعداد یکی اضافه کنی

هادی123
سه شنبه 18 مهر 1385, 19:47 عصر
درسته این کار رو هم می شود کرد

ولی این کد زیری نقص نداره شاید یک روز به دردتون خورد



Dim count As Integer
Dim sr As New StreamReader("C:\New Text Document.txt")
Dim strLine As String
strLine = sr.ReadLine()
Do Until strLine Is Nothing
MsgBox(strLine)
If strLine = "hadi" Then
count = count + 1
End If
strLine = sr.ReadLine()
Loop
sr.Close()
Label7.Text = count