PDA

View Full Version : تعداد کلمات حروف فارسی



aleas2
دوشنبه 23 مرداد 1391, 09:11 صبح
سلام خسته نباشید تو text1 محتویاتی هسته که شامل حروف انگلیسی کد نویسی و فارسی هست ایا روشی هست تشخیص داد تعداد کلمات حروف فارسی ؟
خودم فکر میکنم تنها روش استفاده از کد اسکی هسته کد عسکی حروف فارسی از چند تا چند هسته؟

محسن واژدی
دوشنبه 23 مرداد 1391, 09:38 صبح
سلام علیکم
تابع زیر را بررسی کنید:

Public Function FarsiChrs(ByVal sStr$) As Long
On Error Resume Next
Dim i
Dim iCA%
sStr$ = Replace(sStr$, " ", "")
For i = 1 To Len(sStr$)
iCA% = Asc(Mid(sStr$, i, 1))
If (iCA% >= 193 And iCA% <= 223) Or (iCA% = 225 Or iCA% = 236 Or iCA% = 237) Or (iCA% >= 227 And iCA% <= 230) Then
FarsiChrs = FarsiChrs + 1
End If
Next
End Function


برای مثال:

Private Sub Command1_Click()
MsgBox FarsiChrs("ABCDضصثقEFG")
End Sub


موفق باشید

aleas2
دوشنبه 23 مرداد 1391, 10:56 صبح
ممنون دوست عزیز پس همونطور گفتم تنها روش استفاده از کد اسکی بود ممنون فقط یه سوال چرا بعضی ها مثل شما متغییر هارو به این صورت تعریف میکنن

iCA%
ضمنا" متغییری که نوع داده رو ننویسی integer میشه درسته؟

Dim iCA%

SlowCode
دوشنبه 23 مرداد 1391, 11:34 صبح
چرا بعضی ها مثل شما متغییر هارو به این صورت تعریف میکنن
دو راه براي تعريف متغير وجود داره كه اين يكيشه، و كوتاه تره.

ضمنا" متغییری که نوع داده رو ننویسی integer میشه درسته؟
نخير، از نوع object در نظر ميگيره. ولي ايشون تعيين كردن(علامت هاي $,%,...) هر كدوم معادل نوعي متغير هستند. مثلا $ همون string هست.

aleas2
دوشنبه 23 مرداد 1391, 11:41 صبح
ممنون میتونین علامت های تعریف متغییر رو بگین برای هر متغییر چه علامتی داره؟

SlowCode
دوشنبه 23 مرداد 1391, 12:01 عصر
$ = String
% = Integer
& = Long
! =Single
# =Double
@ = Currency

ho3ein.3ven
دوشنبه 23 مرداد 1391, 12:27 عصر
دو راه براي تعريف متغير وجود داره كه اين يكيشه، و كوتاه تره.

نخير، از نوع object در نظر ميگيره. ولي ايشون تعيين كردن(علامت هاي $,%,...) هر كدوم معادل نوعي متغير هستند. مثلا $ همون string هست.

سلام . شما مطمئنید که اگر نوع داده برای یک متغیر ذکر نشه از نوع object در نظر گرفته میشه ؟ اگه اشتباه نگنم تو کتاب برنامه نویسی 1 سال دوم دبیرستان نوشه به صورت variant تعریف میشه .
خودتون به این 2 تا برنامه توجه کنید :
Private Sub Command1_Click()
Dim a As Object
a = 20
a = "dsa"
Print a
End Sub
برنامه بالا ارور میده
ولی حالا به این برنامه توجه کنید :
Private Sub Command1_Click()
Dim a
a = 20
a = "dsa"
Print a
End Sub
میبینید که هیچ اروری نمیده.

just4froum
دوشنبه 23 مرداد 1391, 12:38 عصر
با سلام :

اگر نوع داده برای یک متغیر ذکر نشه از نوع Variant در نظر گرفته میشه نه Object.

در حقیقت کد پایینی بدین شکل است :

Private Sub Command1_Click()
Dim a As Variant
a = 20
a = "dsa"
Print a
End Sub

SlowCode
دوشنبه 23 مرداد 1391, 13:28 عصر
درسته، يه لحظه قاطي كردم، آخه توي vb6 از نوع variant هست ولي توي vb.net از نوع object.

محسن واژدی
دوشنبه 23 مرداد 1391, 20:52 عصر
پس همونطور گفتم تنها روش استفاده از کد اسکی بود البته یکی از روش ها استفاده از اسکی کاراکتر هست (میتوان گفت مناسبتر) روش دیگر هم لیست کردن مجموعه ای از کاراکترهای فارسی و چک کردن کاراکتر مورد نظر توسط InStr در آن مجموعه

موفق باشید