السلام عليكم ورحمة الله
رمضان كريم إخواني
كما تعرف أخي الكريم أن الايكسل يستطيع تحويل الأرقام الرومانية إلى عادية
بصفة محدودة لا تتجاوز العدد 4999 ويعتمد في هذا التحويل على الدالة
حيث C6 تمثل الخلية التي سنكتب فيها أرقاما عادية ومن ثمة تتحول إلى رومانية
لكن لا توجد دالة تقوم بالعكس أي تحول من الروماني إلى العادي في الايكسل
أما في الاوتوبلاي فبمجرد أن نضع الكود التالي في Global function
ثم نضع أنبوت 1 وزر نضع فيه الكود التالي :
نستطيع القيام بما لم يقوم به الايكسل و هو التحويل من الروماني إلى الرقم العادي
سؤالي :
ما الطريقة في الاوتوبلاي للقيام بالعكس أي التحويل من الأرقام العادية إلى رومانية
تقديري
رمضان كريم إخواني
كما تعرف أخي الكريم أن الايكسل يستطيع تحويل الأرقام الرومانية إلى عادية
بصفة محدودة لا تتجاوز العدد 4999 ويعتمد في هذا التحويل على الدالة
كود:
=ROMAN(C6)
لكن لا توجد دالة تقوم بالعكس أي تحول من الروماني إلى العادي في الايكسل
أما في الاوتوبلاي فبمجرد أن نضع الكود التالي في Global function
كود:
function ToNumeral( roman ) local Num = { ["M"] = 1000, ["D"] = 500, ["C"] = 100, ["L"] = 50, ["X"] = 10, ["V"] = 5, ["I"] = 1 } local numeral = 0 local i = 1 local strlen = string.len(roman) while i < strlen do local z1, z2 = Num[ string.sub(roman,i,i) ], Num[ string.sub(roman,i+1,i+1) ] if z1 < z2 then numeral = numeral + ( z2 - z1 ) i = i + 2 else numeral = numeral + z1 i = i + 1 end end if i <= strlen then numeral = numeral + Num[ string.sub(roman,i,i) ] end return numeral end
كود:
X = Input.GetText("Input1"); result = Dialog.Message("Notice", ToNumeral( X ));
سؤالي :
ما الطريقة في الاوتوبلاي للقيام بالعكس أي التحويل من الأرقام العادية إلى رومانية
تقديري
