السلام عليكم ورحمة الله وبركاته
لدي حقل إسمه Montant يتكون من 13حرف
وقيمته تساوي 18.622,77
وعند حفظه في ملف نصي يجب ان تكون قيمته على هذا الشكل 0000001862277
كيف يمكنني الحصول على هذه النتيجة
ضع هذا الكود في الفورم
Private Function GetFormatNumber(a As String) As String
Dim b = ""
For Each c As Char In a.ToCharArray
If Char.IsNumber( c ) Then b &= c
Next
Return CULng(b).ToString("D13")
End Function
ثم قم بالاستفاده منه بالشكل التالي
Dim t = "18.622,77"
Dim y = GetFormatNumber(t)
MsgBox(y)
بارك الله فيك أخي على الإجابة
الكود لا يعمل
تظهر رسالة في السطر
If Char.IsNumber© Then b &= c
Overload resolution failed because no accessible 'IsNumber' accepts this number of argumentss this
تم تعديل الكود
كانت المشكلة بسبب ما في محرر المشاركات قام بتغيير ( c ) الى © واظطررت لوضع مسافات داخل القوس
شكرا لك أخي 5000 بارك الله فيك
كود شغال
وجاري التجربة على الداتاقريدفيو
والداتاباز
السلام عليكم ورحمة الله وبركاته
وجدت مشكل في هذه الدالة هو أنه
كود :
Private Function GetFormatNumber(ByVal a As String) As String
Dim b = ""
For Each c As Char In a.ToCharArray
If Char.IsNumber(c) Then b &= c
Next
Return CULng(b).ToString("D13")
End Function
المشكل أن عندما يكون لديك رقم مثل
18622,70
تقوم هذه الدالة بجعله 0000000186227
أي أن 70 التي بعد الفاصلة جعلتها 7 فقط
وعند إعادة جلب هذا الملف يصبح الرقم هكذا 1862,27 مما يعقد الأمر أكثر
وعندما مثلا يكون مثلا الرقم بعد الفاصلة 77 أو 22 أو غير ذلك فهي تعمل بشكل عادي وجيد
المشكلة فقط في 10 و 20 و 30 و 40 و 50 و 60 و 70 و 80 و 90
وبارك الله فيكم
هذا الكود يقوم باعطاء كود رقمي من 13 رقما
Dim Montant As Double = 18622.7
Dim a = Montant.ToString("00000000000.00").Replace(".","")
بارك الله فيك أخي بدري على الرد
كيف يمكن تطبيق ذلك على خلية معينة من داتا قريد الخلية C4
writer.Write( & C2 & "" & C3 & "" & GetFormatNumber(C4) & "" & C1)