منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كيف أقلب النص في تكست بوكس - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كيف أقلب النص في تكست بوكس (/showthread.php?tid=35644)



كيف أقلب النص في تكست بوكس - المهنا - 13-07-20

مثلا الإسم التالي 

الجواليقي ، موهوب بن احمد بن محمد

ليصبح 

موهوب بن احمد بن محمد الجواليقي 

حيث أن لدي عمود في قاعدة بيانات كل البيانات بهذا الشكل 


RE: كيف أقلب النص في تكست بوكس - ابراهيم ايبو - 13-07-20

السلام عليكم ورحمة الله وبركاته
اخي الكريم مسألة قلب النص سهلة ولكن اين ستضع النص ؟ ومن اين ستأخذه هل تجلب النص الى مربع نص  وتريد قلبه 
الشيء الاخر جرى تقطيع النص بوساطة المسافة الفارغة بين الكلمات
اليك هذا الكود جيث انني افترضت انك جلبت النص الموجود في العمود الذي تقصده الى مربع نص
ضع الكود في بوتون 
كود :
 Dim txt() As String = TextBox1.Text.Split(" ")
       TextBox1.Text = ""
       For i As Integer = txt.Length - 1 To 0 Step -1
           TextBox1.Text &= txt(i) & " "
       Next
 وهذا كود أخر يعتمد على الدالة Reverse  اي عكس المصفوفة
كود :
  Dim txt() As String = TextBox1.Text.Split(" ")
       TextBox1.Text = ""
       For Each t As String In txt.Reverse()
           TextBox1.Text &= t & " "
       Next
يمكنك التقطيع بناء على الفاصلة انا لم انتبه الى ماتريد ظننت انك تريد قلب الكل


RE: كيف أقلب النص في تكست بوكس - المهنا - 14-07-20

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

فمثلا حروف التصنيف هي عبارة عن 3 حروف 
الحرف الأول هو الحرف الاول من  الاسم الاخير من المؤلف بدون ال
الحرف الثاني هو الحرف الاول من  الاسم الأول من المؤلف بدون ال
الحرف الثالث هو الحرف الأول من عنوان الكتاب بدون ال

فمثلا كتاب البرمجة لمؤلف ابراهيم الايبو يكون 
ا ا ب

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


إقتباس : Dim t1, t2, t3 As Char

        Dim s() As String = Me.Txtadd2.Text.Split
        t1 = If(s(s.Length - 1).StartsWith("ال"), s(s.Length - 1)(2), s(s.Length - 1)(0))
        t2 = If(Me.Txtadd2.Text.StartsWith("ال"), Me.Txtadd2.Text(2), Me.Txtadd2.Text(0))
        t3 = If(Me.Txtadd1.Text.StartsWith("ال"), Me.Txtadd1.Text(2), Me.Txtadd1.Text(0))

        Me.Txtadd7.Text = t1 & " " & t2 & " " & t3

 حصلت مشكلة في بعض الاسماء المركبة مثل 

المعبري المليباري ، عبدالعزيز بن زين الدين

يقلبه للشكل التالي 

المليباري ، عبدالعزيز بن زين الدين المعبري 
 
والمفروض يكون 

عبدالعزيز بن زين الدين المعبري المليباري


RE: كيف أقلب النص في تكست بوكس - ابراهيم ايبو - 14-07-20

السلام عليكم اخي الكريم 
اخي انتبه الى مكان الفاصلة التي ستقطع النص
ومن ناحية حذف ال التعريف من كلمتي البداية( المعبري المليباري)
اليك هذا الكود حيث هذه الجملة (المعبري المليباري , عبد العزيز بن احمد)
تصبح هكذا ( عبد العزيز بن احمد معبري مليباري  )
كود :
' هذا الكود يحذف ال التعريف  من المعبري المليباري
       Dim txt() As String = TextBox1.Text.Split(",")
       TextBox1.Text = ""
       Dim frst() As String = txt(0).Trim.Split(" ")
       Dim Lakab As String = ""
       For Each str As String In frst
           Lakab &= str.Substring(2, str.Length - 2) & " "
       Next
       txt(0) = Lakab
       For Each t As String In txt.Reverse()
           TextBox1.Text &= t & " "
       Next

اما الكود التالي كما ذكرت لك التقطيع بالفاصلة
كود :
 '  هذا الكود لايحذف ال التعريف
       Dim txt() As String = TextBox1.Text.Split(",")
       TextBox1.Text = ""
       For Each t As String In txt.Reverse()
           TextBox1.Text &= t & " "
       Next