PDA

View Full Version : سوال: پيدا كردن اينتر در يك رشته



f_g1348
دوشنبه 08 خرداد 1391, 07:50 صبح
سلام دوستان
من يه قطعه كد دارم كه يك متن ورودي را به كلمات تشكيل دهنده آن تبديل مي كند يعني هرجا فضاي خالي پيدا كرد اتمام يك كلمه را اعلام مي كند .
اما مشكل من اينجاست كه كلمات من با اينتر از هم جدا مي شوند و اين كد اين علامت را نمي شناسد .
لطفاً من را راهنمايي بفرماييد.


Dim str4 As String() = TextBox1.Text.Split(New Char() {" "c})

f_g1348
دوشنبه 08 خرداد 1391, 12:29 عصر
Dim str4 As String() = TextBox5.Text.Split(New Char() {ChrW(13)})
دوستان من از كد بالا استفاده كردم و تقريباً جواب داد ولي كلمات را با يك فضاي خاي در انتها ذخيره مي كنه و حتي با دستور trim هم نمي رود .
چه كاري پيشنهاد ميدين؟

hakim22
دوشنبه 08 خرداد 1391, 19:16 عصر
میتوانید از vbcrlf استفاده کنید. این عبارت در VB به معنی اینتر هست. و اگر درون یک متن با استفاده از split اونو جستجو کنید همه ی خطوطی که اینتر دارند شناسایی می کنه.

f_g1348
دوشنبه 08 خرداد 1391, 20:50 عصر
باز هم همان مشکل هست

co = 0


Dim h, i As Integer
i = 1
Dim str4 As String() = TextBox5.Text.Split(New Char() {vbCrLf})


For Each word In str4 ' طول آرايه براي كلمات بازدارنده
If word IsNot String.Empty Then
co += 1
End If
Next

ReDim stopword(co - 1)

For Each word In str4 ' ريختن كلمات بازدارنده درون آرايه
If word IsNot String.Empty Then
' co += 1
stopword(h) = Trim(word)
h += 1
End If
Next

اگر کد بالا را اجرا کنید میبینید که وقتی ورودی بصورت کلمه به کلمه و با اینتر از هم جدا شدن در آرایه حاصل فقط کلمه اول بدون فضای خالی می باشد و بقیه علاوه بر کلمه یک فضای خالی در انتها دارند که برای مقایسات بعدی مشکل سازه
چه راهکاری پیشنهاد میدین ؟

barn57
چهارشنبه 10 خرداد 1391, 18:10 عصر
سلام این را خودم امتحان کردم و جواب میده

Dim str1() As String = Split(Trim(txtbox1.Text), Chr(10))

بعد هم میتونی با یه چیزی مثل این بهشون دسترسی داشته باشی:
For i as integer = 0 To UBound(str1)
Dim s1 As String = Trim(str1(i))
'کارهای مورد نظر انجام شوند
Next
با for each هم میشه