a7msd

مساعده في تقسيم الاسم

9 ردود في هذا الموضوع

السلام عليكم

عندي كود اخذته من احد الزملاء لتقيسم الاسم الرباعي الى اربعة اجزاء

ولكن عندي مشكلة احتمال ان لايكون الاسم رباعي فيعطيني خطاء في الكود

كيف اعدل على الكود بحيث يفسم الاسم الرباعي اوالثلاثي الى الاسم الاول والثاني والثالث والرابع

Dim Continue As Boolean

Continue = True

Dim X, Y, m As Integer

X = 0

Y = 0

m = 0

'arabic_name Capture First Name-------------------------------------------

Do While Continue = True

X = X + 1

If Mid(name_a, X, 1) = Space(1) Then

Continue = False

Else

Continue = True

'MsgBox (Mid(FullName, X, 1))

End If

Loop

Y = X

name1_a = Mid(name_a, 1, X - 1)

'Capture Second Name-------------------------------------------

Continue = True

Do While Continue = True

Y = Y + 1

If Mid(name_a, Y, 1) = Space(1) Then

Continue = False

Else

Continue = True

'MsgBox (Mid(FullName, Y, 1))

End If

Loop

m = Y

father_a = Mid(name_a, X + 1, Y - X)

'Capture Third Name-------------------------------------------

Continue = True

Do While Continue = True

m = m + 1

If Mid(name_a, m, 1) = Space(1) Then

Continue = False

Else

Continue = True

'MsgBox (Mid(FullName, Z, 1))

End If

Loop

grand_a = Mid(name_a, Y + 1, m - Y)

'Capture Family Name-------------------------------------------

family_a = Mid(name_a, m + 1, 10)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

جرب هذا الكود احسن من الكود الطويل

Private Sub Command0_Click()

Dim str As String

Dim x() As String

str = "a b c d"

x() = Split(str, " ")

For Each y In x()

MsgBox y

Next

End Sub

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الحبيب moody1616 حفظه الله

السلام عليكم ورحمة الله وبركاته

أخي إذا كان الاسم مركب مثل عبد العزيز فكيف الطريقة وليس عبدالعزيز

أحيانا يكون هناك مسافة بين الاسمين المركبين

مع الشكر

محبك/ أبو زيد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اهلا اخي ابو زيد :

ليس هناك حل لان البرمجه عباره عن اوامر تنفذها وليس لها عقل مثل عقولنا تفكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخي الحبيب moody1616 حفظك الله

السلام عليكم ورحمة الله وبركاته

بل لا بد من الحل لأن العقل هو الذي يضع الضوابط فمثلا الاسماء المركبة من العبودية بمجرد وضع شرط فهذه ممكنة على المبرمج أما الاسماء المركبة الأخرى فلابد أيضا لها حل عند المبرمجين

بما أن لديك معرفة بالبرمجة .. فنحن ننتظر

محبك/أبو زيد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا على هذ الرد

ولكن يوجد خط في الكود عند قيمة y الرسالة

microsoft visiual baaic

For Each controal variable on arrays must be variant

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

هذا الكود قديم وأعتقد أنه موجود بالمنتدى ولكن لعلمي بوجوده في أحد برامجي كان الوصول إليه اسرع .

Function LaborNameSplit(InName As String, PartNo As Byte) As String

 Dim FullName, Part, Part2, LPart As String

 Dim pos, Pos2  As Byte

 Dim K As Integer

 

 LaborNameSplit = ""

 FullName = RTrim(LTrim(Nz(InName))) & " "

 

 Do While True

   K = K + 1

   pos = InStr(1, FullName, " ")

   Part = Left(FullName, pos)

   If Part = "آل " Or Part = "عبد " Or Part = "عبدرب " Or _

      Part = "Al " Or Part = "Abdul " Then

     pos = InStr(pos + 1, FullName, " ")

   Else

     Pos2 = InStr(pos + 1, FullName, " ")

     If Pos2 > 0 Then

       Part2 = Mid(FullName, pos + 1, Pos2 - pos)

       Select Case Part2

         Case "الله ","الحق ", "الإسلام ", "الدين "

           pos = Pos2

       End Select

     End If

   End If

   

   If pos = 0 Then

     Select Case PartNo

       Case Is < 4

         If (K - 1) = PartNo Then

           LaborNameSplit = ""

         End If

       Case Else

         LaborNameSplit = LPart

     End Select

     Exit Function

   End If

   

   Select Case K

     Case PartNo

       LaborNameSplit = Left(FullName, pos - 1)

   End Select

   LPart = Left(FullName, pos - 1)

   FullName = Mid(FullName, pos + 1, Len(FullName))

 Loop

End Function

الدالة تتطلب ترتيب الإسم المطلوب الأول أو الثاني وهكذا . يعني للحصول على الأسماء الأربعة لابد أن تستدعي الدالة أربع مرات كل مرة برقم مختلف .

لا أعرف لماذا لا تظهر الكلمات العربية .. عموما هي حسب ترتيبها من اليسار إلى اليمين كالتالي :

"آل "

"عبد "

"عبدرب "

"الله "

"الحق "

"الإسلام "

"الدين "

تحياتي .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الاخ ابو هادي تم تعديل الكود المرفق من ناحيه عدم ظهور اللغة العربية

هل التعديل صحيح ؟

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

أخي الكريم فيصل الحربي .. لا بأس اختلف الترتيب فقط ولكنه لا يؤثر ، فقط الكلمات جميعها يجب أن لا يسبقها مسافة وأن يأتي بعدها مسافة واحدة فقط .

شكري وتحياتي لكم .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .