03-10-12, 07:57 AM
كاتب الموضوع : Programmation
الســـلام عليكم ورحمة الله وبركاتهإخـوانى الأعضـاء الكرام, كيف حال الجميع ؟
أسـأل الله العظيم أن تكونوا فى أفضل حال
سـأل الكثير عن كيفية تطبيق خدمة Google لتدقيق كلمات البحث بمعنى أخر إذا كنت تقوم بالبحث داخل محرك بحث Google عن منتدى فيجوال بيسيك للعرب وكانت محارف لوحة المفاتيح للغة لديك مفعلة للأنجليزية وضغط على زر البحث ستجده تلقائياً أضهر لك تحويل لكمات البحث الى الجملة التي تُريدها بالفعل مثل:
lkj]n td[,hg fdsd; gguvf
بعد التدقيق= هل تقصد: [u]منتدى فيجوال بيسيك للعرب[/u]
فالفكرة كلها أنه يبحث داخل الكلمات الدليلية الخاصة به وحينما يجد معني بعيد جدا لا يأتي لديه بنتائج فيخمن ذلك الأمر ويعرض عليك فلترة كمات بحثك الى اللغة الثانية لديك وهذا ما قمت بعمله اليوم.
لقد قمت بعمل Function توفر لك تنفيذ الأمر التالي واليوم أضعها بين يديكم فأسـأل الله العظيم أن تستفيدو منها
الدالة:
كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#dd0000]'Author Programmation(OmarNegm)
Public Function Conversion(ByVal strSource As String) As String
Const English As String = "a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|]|[|'[/COLOR][color=#007700]|;|/|.|,|`[/color][COLOR=#0000bb]"
Const Arabic As String = "ش|لا|ؤ|ي|ث|ب|ل|ا|ه|ت|ن|م|ة|ى|خ|ح|ض|ق|س|ف|ع|ر|ص|ء|غ|ئ|د|ج|ط|ك|ظ|ز|و|ذ"
Dim arrEnglish() As String = Split(English, "|")
Dim arrArabic() As String = Split(Arabic, "|")
Dim arrSource() As String = Split(strSource, " ")
Dim strFinal As String = ""
Dim currChar As Char
For J As Integer = 0 To arrSource.Count - 1 Step 1
For I As Integer = 1 To Len(arrSource(J)) Step 1
currChar = LCase(Mid$(arrSource(J), I, 1))
If isArabicChar(currChar) = False Then
For H As Integer = 0 To arrEnglish.Count - 1 Step 1
If currChar = arrEnglish(H) Then
If strFinal.Trim = "" Then
strFinal = arrArabic(H)
Else
strFinal &= arrArabic(H)
End If
End If
Next
Else
For H As Integer = 0 To arrArabic.Count - 1 Step 1
If currChar = arrArabic(H) Then
If strFinal.Trim = "" Then
strFinal = arrEnglish(H)
Else
strFinal &= arrEnglish(H)
End If
End If
Next
End If
Next
strFinal &= " "
Next
Return strFinal
arrEnglish = Nothing
arrArabic = Nothing
arrSource = Nothing
strFinal = Nothing
End Function
Private Function isArabicChar(ByVal ccChar As Char) As Boolean
Const AllChars As String = "ش|لا|ؤ|ي|ث|ب|ل|ا|ه|ت|ن|م|ة|ى|خ|ح|ض|ق|س|ف|ع|ر|ص|ء|غ|ئ|د|ج|ط|ك|ظ|ز|و|ذ"
Dim arrChars() As String = Split(AllChars, "|")
For I As Integer = 0 To arrChars.Count - 1 Step 1
If ccChar = arrChars(I) Then
Return True
Exit Function
End If
Next
Return False
arrChars = Nothing
End Function
[/COLOR][/COLOR]
كما ترى أمامك دالتين الأولى () وهي الأساسية والثانية () لا تشغل بالك لها فهي دالة مُكملة إستخدمتها فى التحقق من كون الحروف المُمره عربية ام انجليزية حتى يتم تحويلها للعكس فلقد قمت بجعلها مرنه بحث إذا وجدت الحروف عربية تحولها الى الانجليزية ةإذا وجدتها انجليزية تحولها الى العربية اي يُمكن أن تقول English To Arabic To English
كيفية إستخدام الدالة :
فقط ضع الدالتين او الكود أعلاه داخل وحدة Module وبعدها يُمكنك إستدعائها من أي مكان داخل المشروع بالطريقة التالي فالدالة تحتوي على معامل واحد من نوع String تُمرر إليه القيمة التي تُريد تحويلها وتترك البقية على الدالة
مثال لأستخدام الدالة:
كود :
[color=#000000][COLOR=#0000bb]TextBox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]Conversion[/color][color=#007700]([/color][color=#0000bb]TextBox2[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
أو
كود :
[color=#000000][COLOR=#0000bb]TextBox1[/color][color=#007700].[/color][color=#0000bb]Text [/color][color=#007700]= [/color][color=#0000bb]Conversion[/color][color=#007700]([/color][color=#dd0000]"lkj]n td[,hg fdsd; gguvf"[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
أتمنى أن تستفيد من الدالة, وأنتظروا بإذن الله بعض التطوير فيها بحيث أضع فى الأعتبار أرفاق عليمات الترقيم الخاصة باللغة العربية داخلها وكذلك العودة بالحروف الـ Capital والـ Small كما هي بالنسبة للغة الأنجليزية
والســلام عليكم ورحمة الله وبركاته