منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مساعده في تصحيح كود sent number
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله

بعد تعب من المحاولات 

كتبت الموضوع

عندي رقم في قاعدة البيانات عباره عن ثلاث ارقام مع ثلاث حروف

مثلا

001kkk


اريد اطلعه في ال textbox 
كذا
002kkk

يعني يتضيف رقم مع الاحتفاظ بالحروف

الكود الي عندي هذا


كود :
Exchange_s.Text = Val(Mid$(sent_numberx, 1, 3) + 1).ToString("000")



ال

sent_numberx

يطلع الرقم من قاعدة البيانات
001kkk

ما عرفت الطريقه

بس الي عرفته ان 

كود :
Mid$

كود :
function string integer


[attachment=21374]

وانا اريد
كود :
function  integer string

ما اعرف هل  هنا المشكله او لا

بارك الله فيكم

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

كود :
       Dim str As String = TextBox1.Text.Substring(0, 3)
str = Val(str + 1).ToString("000")
TextBox1.Text = str & TextBox1.Text.Substring(3, 3)



ولكن احسب حسابك الرقم ما يزيد عن ثلاث خانات .
شكرا استاذي ساجرب الكود

بس كيف اذا الرقم التسلسلي وصل إلى ١٠٠٠ 

لازم يمشي الى ١٠٠١.  ١٠٠٢. وهكذا


1003KKK
(20-04-19, 07:44 AM)dubai.eig كتب : [ -> ]شكرا استاذي ساجرب الكود

بس كيف اذا الرقم التسلسلي وصل إلى ١٠٠٠ 

لازم يمشي الى ١٠٠١.  ١٠٠٢. وهكذا


1003KKK

يوجد حلين :

الأول تعمل خانات الأرقام كأقصى عدد تتصورة مثلاً :

0000001kkk

وتعدل كود اقتصاص الارقام السابق .

الثاني نعمل معادلة تحسس الأرقام والحروف ونفصل بينهم ونزيد بمقدار واحد على الرقم ثم نظيف الحروف .

كود :
Dim num As Integer = Integer.Parse(System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "[^\d]", "")) + 1
       Dim str As String = System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "(?:[0-9]+\.?[0-9]*|\.[0-9]+)", "")

       TextBox1.Text = num & str
(20-04-19, 04:15 AM)حريف برمجة كتب : [ -> ]وعليكم السلام ورحمة الله وبركاته ،،

كود :
       Dim str As String = TextBox1.Text.Substring(0, 3)
str = Val(str + 1).ToString("000")
TextBox1.Text = str & TextBox1.Text.Substring(3, 3)



ولكن احسب حسابك الرقم ما يزيد عن ثلاث خانات .



اهلا بك من جديد استاذي

ضبط معاي والحمدالله

انت فتحت عيني على طريقه ممتازه 

والحمدالله ضبطط

كود :
                       If sent_numberx.Length = "6" Then
                           str = sent_numberx.Substring(0, 3)
                           str = Format((Val(sent_numberx) + 1), "000")
                           Exchange_s.Text = str & "kkk"
                       ElseIf sent_numberx.Length = "7" Then
                           str = sent_numberx.Substring(0, 4)
                           str = Format((Val(sent_numberx) + 1), "000")
                           Exchange_s.Text = str & "kkk"
                       ElseIf sent_numberx.Length = "8" Then
                           str = sent_numberx.Substring(0, 5)
                           str = Format((Val(sent_numberx) + 1), "000")
                           Exchange_s.Text = str & "kkk"
                       End If

علشان الرقم يستمر اذا وصل 1000 او اكثر

عملت اول شي حساب عدد الحروف 
sent_numberx.Length

اذا كان 6  يعني
120kkk

اذا كان 7  يعني

1200kkk

اذا كان 8  يعني

12000kkk

وباقي العمل نفس الكود الخاص بك

احسنت وبارك الله فيك

(20-04-19, 08:57 AM)حريف برمجة كتب : [ -> ]
(20-04-19, 07:44 AM)dubai.eig كتب : [ -> ]شكرا استاذي ساجرب الكود

بس كيف اذا الرقم التسلسلي وصل إلى ١٠٠٠ 

لازم يمشي الى ١٠٠١.  ١٠٠٢. وهكذا


1003KKK

يوجد حلين :

الأول تعمل خانات الأرقام كأقصى عدد تتصورة مثلاً :

0000001kkk

وتعدل كود اقتصاص الارقام السابق .

الثاني نعمل معادلة تحسس الأرقام والحروف ونفصل بينهم ونزيد بمقدار واحد على الرقم ثم نظيف الحروف .

كود :
Dim num As Integer = Integer.Parse(System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "[^\d]", "")) + 1
       Dim str As String = System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "(?:[0-9]+\.?[0-9]*|\.[0-9]+)", "")

       TextBox1.Text = num & str


توني اشوف ردك استاذي ما اعرف عن هذه الطريقه بس هو الحمدالله ضبط 
بس بجرب الكود هذا   Rolleyes

هذا الكود اختصر لي المهمه Smile

كود :
Dim num As Integer = Integer.Parse(System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "[^\d]", "")) + 1
      Dim str As String = System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "(?:[0-9]+\.?[0-9]*|\.[0-9]+)", "")

      TextBox1.Text = num & str


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

طريقة بسيطة وبدون تعقيد او تخمين
حتى ولو وصل الرقم الى 9999999999999+

بما ان الاحرف تاتى بعد الارقام بمعنى ان الكود عبارة عن
كود :
999kkk

اى كانت الحروف ثابتة او متغييرة اذا كانت 3 احرف او اكثر
فكل ما فى الامر نتخيل ان الكود للقيمة كالتالى
كود :
       Dim aa As String = "001kkk"

كل ما فى الامر ناتى بعمل التالى
كود :
       MsgBox((Val(aa) + 1).ToString("000") & aa.Substring(aa.Length - 3, 3))


الان كل ما قد تحتاج الى تغييره هو شئ واحد فقط
انظر الى هذا الجزء فى الكود
كود :
- 3, 3

-3 تعنى عدد 3 احرف التى بعد الرقم
ورقم 3 اللى بعدها هو اشارة لجلب عدد الاحرف

فلو نقول ان عدد الاحرف 4 فكل ما عليك فعله
كود :
- 4, 4

الامر بسيط الان
فالكود كاملاً عبارة عن
كود :
(Val(aa) + 1).ToString("000") & aa.Substring(aa.Length - 3, 3)

تحياتى لك
وتمنياتى لك التوفيق
(20-04-19, 09:57 AM)elgokr كتب : [ -> ]
وعليكم السلام ورحمة الله وبركاته

طريقة بسيطة وبدون تعقيد او تخمين
حتى ولو وصل الرقم الى 9999999999999+

بما ان الاحرف تاتى بعد الارقام بمعنى ان الكود عبارة عن
كود :
999kkk

اى كانت الحروف ثابتة او متغييرة اذا كانت 3 احرف او اكثر
فكل ما فى الامر نتخيل ان الكود للقيمة كالتالى
كود :
       Dim aa As String = "001kkk"

كل ما فى الامر ناتى بعمل التالى
كود :
       MsgBox((Val(aa) + 1).ToString("000") & aa.Substring(aa.Length - 3, 3))


الان كل ما قد تحتاج الى تغييره هو شئ واحد فقط
انظر الى هذا الجزء فى الكود
كود :
- 3, 3

-3 تعنى عدد 3 احرف التى بعد الرقم
ورقم 3 اللى بعدها هو اشارة لجلب عدد الاحرف

فلو نقول ان عدد الاحرف 4 فكل ما عليك فعله
كود :
- 4, 4

الامر بسيط الان
فالكود كاملاً عبارة عن
كود :
(Val(aa) + 1).ToString("000") & aa.Substring(aa.Length - 3, 3)

تحياتى لك
وتمنياتى لك التوفيق



احلا تقييم 

تسلم ايدك عمل بشكل ممتاز احسنت استاذي الكريم ومنك ومن الشباب الطيبين نستفيد

الله لا يحرمنا منكم  Rolleyes
لى ولك وللجميع بامر الله 

تحياتى لك
وتمنياتى لك التوفيق