مشاهدة النسخة كاملة : انتقاء عددا بشرط
ثامر أبو بلقيس
16-04-2017, 10:06 PM
السلام عليكم ورحمة الله وبركاته
واثق بأن استفساري سيكون بسيطا للغاية
لدي سلاسل عددية كثيرة
أحببت أن أستخلص من كل عدد الأرقام بدء من الرقم 2 و اهمال ما دونه
مثال :
لدي العدد 54872123 اريد الناتج يبدأ من عند المعبأ بالأزرق لأنها أول 2
ويكون الناتج : 123
مثال آخر :
لدي 3145720 يكون الناتج 0
فرقم 2 كل مرة و يكون في منزلة مغايرة أي غير ثابت مع طول العدد غير الثابت هو الآخر
وهناك مرات يكون العدد مدمج مع تسميات مثال : 3145720151 _ thameur هنا الناتج المأمول 0151 بغض النظر عن الكتابة thameur تكون يمينا أو يسارا
شكــــــرا :abc_050:
ياسرهتهت
17-04-2017, 12:10 AM
بسم الله الرحمن الرحيم
محاولة
num = "54872123"
len = String.Length(num);
mark = String.Find(num, "2", 1, false);
int = String.Mid(num, 1, mark-1);
fract = String.Mid(num, mark+1, len-mark);
int = String.ToNumber(int);
fract = String.ToNumber(fract);
Dialog.Message("Notice", "ما بعد الرقم 2"..int.."\r\n".."ما قبل الرقم 2 "..fract, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
موفق بإذن الله ... لك مني أجمل تحية
:abc_152::abc_138::abc_152:
.
ياسرهتهت
17-04-2017, 12:20 AM
بسم الله الرحمن الرحيم
يمكن ايضا بأستخدام الاضافة Action Extension
NPE = AE.StringDelimitedToTable(Input.GetText("P"), "2");
Dialog.Message("Notice", NPE[1]);
Dialog.Message("Notice", NPE[2]);
موفق بإذن الله ... لك مني أجمل تحية .
:abc_138::abc_138:
ثامر أبو بلقيس
17-04-2017, 01:37 AM
بسم الله الرحمن الرحيم
محاولة
num = "54872123"
len = String.Length(num);
mark = String.Find(num, "2", 1, false);
int = String.Mid(num, 1, mark-1);
fract = String.Mid(num, mark+1, len-mark);
int = String.ToNumber(int);
fract = String.ToNumber(fract);
Dialog.Message("Notice", "ما بعد الرقم 2"..int.."\r\n".."ما قبل الرقم 2 "..fract, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
موفق بإذن الله ... لك مني أجمل تحية
:abc_152::abc_138::abc_152:
.
مشكـــور جدا
فالمطلوب أي نعم هو المعبر عنه بالجزئية
التالية من كودك :
num = " 3145720151 _ thameur "
len = String.Length(num);
mark = String.Find(num, "2", 1, false);
---int = String.Mid(num, 1, mark-1);
fract = String.Mid(num, mark+1, len-mark);
--int = String.ToNumber(int);
fract = String.ToNumber(fract);
--Dialog.Message("Notice",int);
Dialog.Message("Notice",fract);
أعطى نتائج ممتازة مع الأمثلة المطروحة لكن مع هذا المثال قد أطلب تعديل لينتج المأمول أي 0151 أي ما بعد الــ 2 و إهمال الكتابة غير عددية :abc_138:
ثامر أبو بلقيس
17-04-2017, 01:41 AM
بسم الله الرحمن الرحيم
يمكن ايضا بأستخدام الاضافة Action Extension
NPE = AE.StringDelimitedToTable(Input.GetText("P"), "2");
Dialog.Message("Notice", NPE[1]);
Dialog.Message("Notice", NPE[2]);
موفق بإذن الله ... لك مني أجمل تحية .
:abc_138::abc_138:
الجزئية التي تهمني هي :
NPE = AE.StringDelimitedToTable(Input.GetText("Input1"), "2");
Dialog.Message("Notice", NPE[2]);
لا تعطي نتائج صحيحة إلا في حالة ما بعد الــ 2 إلا رقما واحدا :abc_139:
المـهاجر
17-04-2017, 01:57 AM
السلام عليكم ورحمة الله وبركاته
Mohager = string.match(" 3145720151 _ thameur " , "2(%d+)")
Dialog.Message("Notice", Mohager);
ثامر أبو بلقيس
17-04-2017, 01:58 AM
السلام عليكم ورحمة الله وبركاته
Mohager = string.match(" 3145720151 _ thameur " , "2(%d+)")
Dialog.Message("Notice", Mohager);
هو المأمول و المقصود ومحل الاستفسار :abc_152:
في حالة عدد لوحده لا يهم كتابة المزدوجتين :abc_022:
المـهاجر
17-04-2017, 02:05 AM
في حالة عدد لوحده لا يهم كتابة المزدوجتين :abc_022:
لم افهم ماذا تقصد ؟
:abc_152:
ثامر أبو بلقيس
17-04-2017, 02:20 AM
p = string.match(3145720151, '2(%d+)')
Dialog.Message("Notice", p);
المـهاجر
17-04-2017, 02:31 AM
اللوا لا تفرق بين المزدوجة " و المفردة ' بأى حال من الأحوال
موفق
ثامر أبو بلقيس
17-04-2017, 02:38 AM
ليس ذاك القصد بل قصدت كتابة الرقم 3145720151 بدون مزدوجة أو مفردة
مشكـــور جدا :abc_138:
المـهاجر
17-04-2017, 02:53 AM
ليس ذاك القصد بل قصدت كتابة الرقم 3145720151 بدون مزدوجة أو مفردة
مشكـــور جدا :abc_138:
كلام سليم و من اساسيات التعبير عن المتغيرات
لا يشذ عنها سوى حالة كتابة ارقام تبدأ بصفر من اليسار
هذه فقط لا نستطيع كتابتها الا فى صورة سترنج مثل "0100000000"
vBulletin® v3.8.11, Copyright ©2000-2024, abohmam