PDA

View Full Version : کلمات فارسی



masoudtg
یک شنبه 30 فروردین 1394, 18:35 عصر
سلام
من یه فایل تکست دارم که درونش کلمات فارسی و انگلیسی قاطی هستن(با طول خط های متفاوت)
میخوام برنامه ای بنویسم که کلمات فارسی رو مرتب تو یه فایل دیگه بنویسه به طوریکه تو هر خط یه کلمه باشه
خوب::: 1-یه فایل با فرمت TXT رو تصور کنید(A- محتویاتش کلمات فارسی و انگلیسی هست
B- بصورت مختلط
C- تو چندین خط با طول خط های متفاوت تو یه خط 10 کلمه هست یکی دیگه 2 کلمه)
2-من لغات فارسی رو میخوام فقط فارسی
3-میخوام برنامه کلمات فارسی رو واسم تو یه فایل TXT دومی ذخیره کنه.

isaac23
یک شنبه 30 فروردین 1394, 22:55 عصر
منظورتون اصلا واضح نیست میشه دقیق تر توضیح بدید ؟

meys34
چهارشنبه 09 اردیبهشت 1394, 11:36 صبح
بهتر بود عنوان تاپیک رو مینوشتید "تشخیص لغات فارسی از انگلیسی"


لغات فارسی در یونیکد با پیش شماره 06 و لغات انگلیسی با پیش شماره 00 شروع میشن...

مثلا: A بزرگ = 00 41 هست و (آ با کلاه)= 06 22

از تابع AscW برای پیدا کردن این کد ها استفاده میکنیم...

Private Sub Command1_Click()
List1.Clear
Dim Word() As String
Dim i As Integer


Word = Split(Text1.Text, " ")

For i = 0 To UBound(Word)
If IsPersian(Word(i)) Then List1.AddItem Word(i)
Next
End Sub


Private Function IsPersian(ByVal W As String) As Boolean
Dim i As Integer

For i = 1 To Len(W)

If AscW(Mid$(W, i, 1)) >= &H0600 Then IsPersian = True: Exit For
Next
End Function

masoudtg
جمعه 11 اردیبهشت 1394, 15:29 عصر
بهتر بود عنوان تاپیک رو مینوشتید "تشخیص لغات فارسی از انگلیسی"


لغات فارسی در یونیکد با پیش شماره 06 و لغات انگلیسی با پیش شماره 00 شروع میشن...

مثلا: A بزرگ = 00 41 هست و (آ با کلاه)= 06 22

از تابع AscW برای پیدا کردن این کد ها استفاده میکنیم...

Private Sub Command1_Click()
List1.Clear
Dim Word() As String
Dim i As Integer


Word = Split(Text1.Text, " ")

For i = 0 To UBound(Word)
If IsPersian(Word(i)) Then List1.AddItem Word(i)
Next
End Sub


Private Function IsPersian(ByVal W As String) As Boolean
Dim i As Integer

For i = 1 To Len(W)

If AscW(Mid$(W, i, 1)) >= &H0600 Then IsPersian = True: Exit For
Next
End Function



بایت عنوان تاپیک شما درست می فرمایید
از جوابتون هم ممنونم
فقط یه مشکل وجود داره اونم اینه که وقتی به مثلا این عبارت میرسه
wordفارسی
کلش رو برمیگردونه(یعنی یه کلمه فارسی که به یه انگلیسی چسبیده)

meys34
یک شنبه 13 اردیبهشت 1394, 12:07 عصر
سلام

شما با توجه به نیازتون باید تغییرش بدید...

مثلا:

WowبرنامهنویسWow یک کلمه حساب میشه چون بینشون فاصله نیست...
و از اونجایی که چند تا از حروفش فارسی هست پس احتمالا کل کلمه هم فارسی هست...

حالا شما اگه چیز دیگه ای مد نظرتون هست بفرمایید... با مثال لطفا