السلام عليكم ورحمة الله مطلوب برنامج تحويل الارقام او الحروف من شكل الى شكل مثال: الرقم 2015 ممكن نستخرج له عده اشكال اخرى عندما نكتبه هكذا 5 1 0 2 ......................السطر رقم1 ناخذ من سطر رقم 1 ما يلي رقم من اليسار (الاخير) ثم تاخذ رقم من اليمين (الاول) ثم رقم من قبل الاخير ثم رقم من الثاني هكذا 2 5 0 1...................... السطر رقم 2 ناخذ من سطر رقم 2 ما يلي رقم من اليسار (الاخير) ثم تاخذ رقم من اليمين (الاول) ثم رقم من قبل الاخير ثم رقم من الثاني هكذا 1 2 0 5 وهكذا حتى يظهر السطر رقم 1 من جديد وتكون الارقام هكذا 5 1 0 2 (اول سطر) 2 5 0 1 1 2 0 5 (سطر ما قبل الاخير) 5 1 0 2كما نرى رجع السطر الاول (اخر سطر) اذن الطريقة : ناخذ رقم ايسر مع رقم ايمن حتى ناخذ كل ارقام السطر ويظهر سطر جديد ناخذ من السطر الجديد رقم ايسر مع رقم ايمن حتى ناخذ كل ارقام السطر ويظهر سطر جديد اخر وهكذا حتى يظهر السطر الاول مثال اخر كلمة مرحبا م ر ح ب ا سطر رقم 1 ا م ب ر ح سطر رقم 2 ح ا ر م ب سطر رقم 3 ب ح م ا ر سطر رقم 4 ر ب ا ح م سطر رقم 5 ما قبل الاخير م ر ح ب ا سطر رقم 6 (الاخير) مثل رقم 1
Dim OrgLine As String Dim TmpLine As String Dim NewLine As String Dim Lines_Array() As String Dim Is_individual As Boolean Dim LeftIndex As Integer Dim RightIndex As Integer Dim Lines_Count As Integer Dim I As Integer
30-12-15, 05:43 AM (آخر تعديل لهذه المشاركة : 30-12-15, 05:47 AM {2} بواسطة تاج.)
(30-12-15, 02:26 AM)Ahmed_Mansoor كتب : أهلا أخي الكريم ، جرب الكود التالي :
PHP كود :
Dim OrgLine As String Dim TmpLine As String Dim NewLine As String Dim Lines_Array() As String Dim Is_individual As Boolean Dim LeftIndex As Integer Dim RightIndex As Integer Dim Lines_Count As Integer Dim I As Integer
IF Len(OrgLine) Mod 2 = 0 Then Is_individual = False Else Is_individual = True End IF
ReDim Lines_Array(1 To Lines_Count) As String
Lines_Array(Lines_Count) = OrgLine
Do
IF LeftIndex = RightIndex Then IF Is_individual = True Then NewLine = NewLine & Mid$(TmpLine,LeftIndex,1) End IF Lines_Count = Lines_Count + 1 ReDim Preserve Lines_Array(1 To Lines_Count) As String Lines_Array(Lines_Count) = NewLine IF NewLine = OrgLine Then Exit Do TmpLine = NewLine NewLine = "" LeftIndex = 1 RightIndex = Len(TmpLine) Else NewLine = NewLine & Mid$(TmpLine,LeftIndex,1) NewLine = NewLine & Mid$(TmpLine,RightIndex,1) LeftIndex = LeftIndex + 1 RightIndex = RightIndex - 1 End IF
Loop
For I = LBound(Lines_Array) To UBound(Lines_Array) MsgBox Lines_Array(I) Next
ملاحظه : لم أجرب الكود لأني كتبته من الهاتف لكن إن شاء الله يعمل بشكل جيد
اخي احمد منصور
السلام عليكم ورحمة الله
اشكر لك اهتمامك باجابة اسئلتي
ولكن يظهر هذا الخطا باللون الاصفر
والبرنامج فى المرفقات
PHP كود :
NewLine = NewLine & Mid$(TmpLine, RightIndex, 1)
(30-12-15, 05:16 AM)sami2015 كتب : Dim s$, i%, m$
s$ = "مرحبا"
m$ = m$ & s$ & vbCrLf
For i% = 1 To Len(s$)
s$ = Mid$(s$, 2) & Mid$(s$, 1, 1)
m$ = m$ & s$ & vbCrLf
Next
MsgBox m$
اخي الكريم سامي
اسعد الله اوقاتك بكل خير
اشكرك على المساعدة
ولكن فكرة حرف من اليسار ثم حرف من اليمين حتى تنتهي حروف السطر ويظهر سطر جديد
ثم ناخذ من السطر الجديد حرف من اليسار وحرف من اليمين حتى يظهر سطر جديد اخر
وتستمر العملية حتى يظهر السطر الاصلي الاول
وهذا لم يحدث فى الكود الذي زودتنى به
المرفق الخاص الكود موجود ضمن المرفقات
ارجو التعديل عليه
ولك كل الشكر
أهلا أخي الكريم , معليش أرجو المعذره فعلا كان فيه خطأ بسيط , وعند التجربة أكتشف مشكله في الكلماات العربيه فقط أما الأرقام والكلمات الإنجليزية فلامشكلة فيها , المشكله في الكلمة العربيه أن الحرف الأيسر فيها يكون هو الحرف الأيمن عندما نستخدم دالة جلب الحرف الأيسر للكلمة الدالة Left والعكس صحيح لذلك هذا الشئ سبب لخبطه في أظهار النتيجة للكلمة العربيه فقط لذلك لابد من قلب العمليه لتظهر النتيجة بالشكل الذي تريده , ولذلك لابد من أن نعرف هل الكلمة عربيه أم لا قبل البدء في عمل الكود لذلك وضع أداتين أوبشن بوكس لذلك , لكي يعمل الكود بالشكل الصحيح .
30-12-15, 07:49 PM (آخر تعديل لهذه المشاركة : 30-12-15, 07:57 PM {2} بواسطة تاج.)
(30-12-15, 10:47 AM)Ahmed_Mansoor كتب : أهلا أخي الكريم , معليش أرجو المعذره فعلا كان فيه خطأ بسيط , وعند التجربة أكتشف مشكله في الكلماات العربيه فقط أما الأرقام والكلمات الإنجليزية فلامشكلة فيها , المشكله في الكلمة العربيه أن الحرف الأيسر فيها يكون هو الحرف الأيمن عندما نستخدم دالة جلب الحرف الأيسر للكلمة الدالة Left والعكس صحيح لذلك هذا الشئ سبب لخبطه في أظهار النتيجة للكلمة العربيه فقط لذلك لابد من قلب العمليه لتظهر النتيجة بالشكل الذي تريده , ولذلك لابد من أن نعرف هل الكلمة عربيه أم لا قبل البدء في عمل الكود لذلك وضع أداتين أوبشن بوكس لذلك , لكي يعمل الكود بالشكل الصحيح .
اخى الكريم
هناك مشكلة في السطر الثالث
حيث انه المفروض ياخذ حرفا من اليسار اولا ثم حرفا من اليمين
لكنه بدأ بحرف من اليمين اولا
والصورة توضح ذلك