الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

وضع اصفار من جهة اليسار .. بحاجة إلى خبير

مغلق
بدأه Lamyaa في 16 فبراير 2005 · 6 رد · 696 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي صندوق Text1 يحوي على أرقام مكونة من عدة خانات (أقصد عدد الأرقام متفاوت) مثلاُ

22545,5

123.3

0004526,5

002369,566

22545,56

أي أن هناك مجموعة أرقام في خانة اليسار (اللون الأزرق) ومن ثم كوما (فاصلة إنجليزية) ومن ثم رقم على اليمن من الفاصلة (اللون الأخضر)

وأريد أن اجعل الأرقام التي خانة اليسار (الأزرق) مكونة من 10 خانات أي يتم إكمال الخانات بالصفار من جهة اليسار ليصبح الرقم هكذا :

0000022545,56

بالطبع كل ما قل الرقم كلما زاد عدد الأصفار التي ستضاف فلو كان الرقم أحاد فسيتم إضافة 9 أصفار ولو كان عشرات فسيتم إضافة 8 أصفار .. الخ

ويفترض لو كان هناك أصفار في الرقم من قبل أن نضيف لها إما أن يزيلها أو يضيف عليها ليكمل العشرة

ومن ثم ينتقل إلى السطر الذي يليه من دون المساس بما هو يمين الفاصلة

أعلم انني متطلبة .. ولكن كل ما أرجوه منكم مساعدتي أو إرشادي إلى مثال مشابهة ولكم تقديري

post-252239-064955400%201356690312.gif
#2

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

طلبك بسيط إن شاء الله

بفرض أن الرقم هو المتغير المسمى MyNumber

Text1.Text=Format(MyNumber,"0000000000.00")

وطبعا المحاذاه والالتفاف خصائص التكيست بوكس

والله المستعان

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

#3

أخي الفاضل

في البداية اشكر وأقدر لك تعاونك وخدمتك الجليلة ..

حينما جربت الطريقة التي تفضلت بذكرها كانت النتيجة مغايرة

مثلاً المتغير

MyNumber = 22545,56

ظهرت النتيجة

0002254556.00

بينما المراد أن تكون النتيجة :

0000022545,56

فهل هناك طريقة أخرى ؟

تحياتي ..

تم تعديل هذه المشاركة بواسطة Lamyaa في 16 فبراير 2005 في 15:55

post-252239-064955400%201356690312.gif
#4

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

وإن كان ظهور النتيجة بالصورة التى ذكرتيها مستغرب بالنسبة لى إلا أنه هناك طريقة أخرى وهى

Text1.Text=Format(MyNumber,"0000000000.##")

ولكن هذه لن تجعلها خانتين ثابتتين بعد العلامة

ولكن قولى لى هل عرفتى MyNumber على أنه Single أو Double وليس Integer؟

إن كانت إجابتك بلا فهذا هو السبب

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

#5

نعم قمت بتعديل MyNumber كمتغير من نوع Single فكانت نفس النتيجة

0002254556.00

وكذلك الأمر حينما جعلت المتغيير من نوع Double

وحينما جربت الطريقة الثانية :

Text1.Text = Format(MyNumber, "0000000000.##")

كانت النتيجة خاطئة أيضا وهي :

0002254556.

أرجو أن تتحملني قليلاً أخي الكريم

تم تعديل هذه المشاركة بواسطة Lamyaa في 16 فبراير 2005 في 20:14

post-252239-064955400%201356690312.gif
#6

بسم الله الرحمن الرحيم

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

الأخ العزيز abulyaman اجاب وافيه و صحيحة بإذن الله و جزاه الله عنا كل الخير ... غير ان جعلك للمتغير من النوع Single يؤدي بالتالي الى تجاهل القيم التنسيق الذي ينتج عن الدالة Format حيث انها تقوم بإرجاع قيمة سليمة مئة بالمئة و كما هو مطلوب منها بإذن الله تعالى و لكن تخزن الناتج في متغير من نوع Single يلغي ذلك التأثير

و بالتالي فالأحرى هنا اما استخدام النوع String او Variant وهو ما اميل إليه بالشكل التالي :

Private Sub Command1_Click()
    Dim Number As Single
    Dim myNumber As Variant
    
    Number = 22545.56
    Print "Number :", Number
    
    
    myNumber = Format(Number, "0000000000.######")
    Print "myNumber :", myNumber
End Sub

وسيعمل بإذن الله تعالى كما ينبغي ... و للتجربة يمكن تغيير نوع المتغير myNumber من Variant كما هو في الأعلى الى نوع Single وسوف ينتج عن ذلك نتائج غير المرغوبة كما يلي :

Private Sub Command1_Click()
    Dim Number As Single
    Dim myNumber As Single
    
    Number = 22545.56
    Print "Number :", Number
    
    
    myNumber = Format(Number, "0000000000.######")
    Print "myNumber :", myNumber
End Sub

اتمنى ان يفي هذا بالغرض و السلام عليكم و رحمة الله و بركاته

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#7

اتفضلى هذا البرنامج

Zeros.zip

ان اجــمل الزهـــــــــــر مانـــــبت بحــــــــدائق الاحـــــــــــــــزان

Eng. Mohammed Salah

هذا الموضوع مغلق.

مواضيع مشابهة