Jump to content

simple export function to add Zero


Recommended Posts

SIMPLE FUNCTION

ADD 0 Before Number
Used in : time ...
3:5-- 03:05 A.M


function addZero (n)
	if string.len(n) == 1 then  
		return  string.rep("0", 1) .. n
	else
		return n
	end 
end

OR :


function addZero (i,n)
	if string.len(n) == 1 then  
		return  string.rep("0", i) .. n
	else
		return n
	end 
end

نشرته لان في ناس يمكن تبحث عنه او تحتاجه وشكرا

ملقيت اسم للفكشن الي يعرف شو اسمه يخبرني

Link to comment

مفيدة فعلاً بس عندي تعليقين، ليه استخدمت 

string.rep

وانت بتضيف صفر واحد؟

كمان اذا بتستخدمه بس للوقت، اذا استخدمته على صيغة كاملة مثل "5:3" بيحولها ل "05:3" فقط فمن الافضل تكون

function addZero (str)
  	local newStr = ""
  	local t = {}
	for _, digit in ipairs(string.gmatch(str, ":")) do
    	local tmpStr = ""
    	if string.len(digit) == 1 then
      		tempStr = tostring(0..digit)
      	else
      		tempStr = tostring(digit)
      	end
    	table.insert(t, tempStr)
    end
  	newStr = table.concat(t, ":")
  	return newStr
end

 

  • Like 2
Link to comment
On 25/03/2019 at 14:13, savour said:

مفيدة فعلاً بس عندي تعليقين، ليه استخدمت 


string.rep

وانت بتضيف صفر واحد؟

كمان اذا بتستخدمه بس للوقت، اذا استخدمته على صيغة كاملة مثل "5:3" بيحولها ل "05:3" فقط فمن الافضل تكون


function addZero (str)
  	local newStr = ""
  	local t = {}
	for _, digit in ipairs(string.gmatch(str, ":")) do
    	local tmpStr = ""
    	if string.len(digit) == 1 then
      		tempStr = tostring(0..digit)
      	else
      		tempStr = tostring(digit)
      	end
    	table.insert(t, tempStr)
    end
  	newStr = table.concat(t, ":")
  	return newStr
end

 

شكرا لك انا في طريقتي كنت اقصد بها مثلا :
 

	outputChatBox(" #ff5252[ #ff9f1a ".. addZero ( hour ).. "-".. addZero ( minute ) .. "-"..addZero ( second ).. " ".. addZero ( day ).. ":".. addZero ( month ).. ":".. addZero ( year ).. " #ff5252 ]",thePlayer,120,120,0, true)

 

Link to comment
On 25/03/2019 at 03:13, savour said:

مفيدة فعلاً بس عندي تعليقين، ليه استخدمت 


string.rep

وانت بتضيف صفر واحد؟

كمان اذا بتستخدمه بس للوقت، اذا استخدمته على صيغة كاملة مثل "5:3" بيحولها ل "05:3" فقط فمن الافضل تكون


function addZero (str)
  	local newStr = ""
  	local t = {}
	for _, digit in ipairs(string.gmatch(str, ":")) do
    	local tmpStr = ""
    	if string.len(digit) == 1 then
      		tempStr = tostring(0..digit)
      	else
      		tempStr = tostring(digit)
      	end
    	table.insert(t, tempStr)
    end
  	newStr = table.concat(t, ":")
  	return newStr
end

 

فكرتك حلوة بس في شوية اخطاء

1 - ما يصير تلزق النقط لازم تسوي فاصل

tempStr = tostring(0..digit)

2 - بدل ما تعرف كل دالة لحالها باللوكل تقدر تيجي في اول السكريبت وتسوي كدا اسهل

function addZero( str )
	local arg1 , arg2 , arg3 , etc  

3 - string.gmatch --> علي حد علمي ان هي ترجع فنكشن مب تيبل

بالتوفيق

function addZero (str,sign)
	local Table 
  	if( ( str and sign ) and ( string.find( tostring( str ) , tostring( sign ) ) ) ) then
		Table = split( str , sign );
		for index = 1 , #Table do
			Table[ index ] = 0 .. Table[ index ]
		end
		return table.concat( Table , sign )
	end
	return false
end

-- Example --

print( addZero( "2:5" , ":" ) ) -- 02:05
print( addZero( "1,8" , "," ) ) -- 01,08

 

  • Like 2
Link to comment
On 27/03/2019 at 20:19, KillerX said:

فكرتك حلوة بس في شوية اخطاء

1 - ما يصير تلزق النقط لازم تسوي فاصل


tempStr = tostring(0..digit)

2 - بدل ما تعرف كل دالة لحالها باللوكل تقدر تيجي في اول السكريبت وتسوي كدا اسهل


function addZero( str )
	local arg1 , arg2 , arg3 , etc  

3 - string.gmatch --> علي حد علمي ان هي ترجع فنكشن مب تيبل

بالتوفيق


function addZero (str,sign)
	local Table 
  	if( ( str and sign ) and ( string.find( tostring( str ) , tostring( sign ) ) ) ) then
		Table = split( str , sign );
		for index = 1 , #Table do
			Table[ index ] = 0 .. Table[ index ]
		end
		return table.concat( Table , sign )
	end
	return false
end

-- Example --

print( addZero( "2:5" , ":" ) ) -- 02:05
print( addZero( "1,8" , "," ) ) -- 01,08

 

 

صحيح كلامك لكن:

النقط والفواصل عادي تكون بدون مسافات، لكن كل واحد على حسب الشكل اللي يحبه ، في ناس لو طول السطر معاها بتنزله لسطر تاني لكن المهم المسافة ماتئثر اذا قفلت الشيء اللي قبلها مثال

hello = "Hello "
	.."MTA "
	.."Community"
	
print(hello) --> Hello MTA Community

+ عند الارقام، لازم تكون في مسافة، قوس او انتر بعد الرقم عشان لايحسبها فاصلة عددية (نسيتها كمان بس حبيت اوضح)

المتغيرات كتبتها كدا عشان تتفهم اسرع + احب اذا استخدمت متغير داخل اللوب احطه داخل اللوب عشان اقلل نسبة التداخل (عادة)، يعني اللوب كل مرة تشتغل بتشتغل على متغيرات نظيفة

بالنسبة ل string.gmatch صحيح بترجعلك فنكشن وانا هنا نسيتها تماما، لكن الفنكشن اللي بترجعها بتكون شبيهة بفنكشكن اللوب pairs، والصراحة اول مرة اعرف ان الام تي ايه في فنكشن split فدايما كنت بابحث عن الباترن واستخدم gmatch ، شكرا على الاضافة، دا الكود السليم:

function addZero (str)
  	local newStr = ""
  	local t = {}
	
	for digit in string.gmatch(str, "([^:]+)") do
    	local tmpStr = ""
    	if string.len(digit) == 1 then
      		tempStr = "0"..digit
      	else
      		tempStr = tostring(digit)
      	end
    	table.insert(t, tempStr)
    end
  	newStr = table.concat(t, ":")
  	return newStr
end

وصاحب الموضوع اعتقد قالها عشان التوقيت يعني 5:6:20 مثلا تصبح 05:06:20، الفنكشن عندك اكثر شمولية لكن الصراحة ماشفت توقيت بينكتب بالفاصلة، شكرا ع التنبيه :)

Link to comment
On 30/03/2019 at 12:51, KillerX said:

عفوا

علي حد علمي لو تلزق النقط بارقام في اللوا عادي

بس في ام تي ايه بيطلعلك خطا

3.4 – Concatenation

Lua denotes the string concatenation operator by ".." (two dots). If any of its operands is a number, Lua converts that number to a string.

    print("Hello " .. "World")  --> Hello World
    print(0 .. 1)               --> 01

https://www.lua.org/pil/3.4.html

Link to comment
2 hours ago, coNolel said:

3.4 – Concatenation

Lua denotes the string concatenation operator by ".." (two dots). If any of its operands is a number, Lua converts that number to a string.


    print("Hello " .. "World")  --> Hello World
    print(0 .. 1)               --> 01

https://www.lua.org/pil/3.4.html

داري بكل دا

اقول ما يصير تسوي كدا

0.." killerx"

في ام تي ايه بيجيك خطا

ودا عن تجربة 

موفقين

 #Edit : وكمان في اللوا نفس الخطا بيجيك عن تجربة :)

واللي هوا --》 malformed number near 0..

Edited by KillerX
  • Like 1
Link to comment
  • 3 weeks later...
On 30/03/2019 at 10:16, savour said:

 

صحيح كلامك لكن:

النقط والفواصل عادي تكون بدون مسافات، لكن كل واحد على حسب الشكل اللي يحبه ، في ناس لو طول السطر معاها بتنزله لسطر تاني لكن المهم المسافة ماتئثر اذا قفلت الشيء اللي قبلها مثال


hello = "Hello "
	.."MTA "
	.."Community"
	
print(hello) --> Hello MTA Community

+ عند الارقام، لازم تكون في مسافة، قوس او انتر بعد الرقم عشان لايحسبها فاصلة عددية (نسيتها كمان بس حبيت اوضح)

المتغيرات كتبتها كدا عشان تتفهم اسرع + احب اذا استخدمت متغير داخل اللوب احطه داخل اللوب عشان اقلل نسبة التداخل (عادة)، يعني اللوب كل مرة تشتغل بتشتغل على متغيرات نظيفة

بالنسبة ل string.gmatch صحيح بترجعلك فنكشن وانا هنا نسيتها تماما، لكن الفنكشن اللي بترجعها بتكون شبيهة بفنكشكن اللوب pairs، والصراحة اول مرة اعرف ان الام تي ايه في فنكشن split فدايما كنت بابحث عن الباترن واستخدم gmatch ، شكرا على الاضافة، دا الكود السليم:


function addZero (str)
  	local newStr = ""
  	local t = {}
	
	for digit in string.gmatch(str, "([^:]+)") do
    	local tmpStr = ""
    	if string.len(digit) == 1 then
      		tempStr = "0"..digit
      	else
      		tempStr = tostring(digit)
      	end
    	table.insert(t, tempStr)
    end
  	newStr = table.concat(t, ":")
  	return newStr
end

وصاحب الموضوع اعتقد قالها عشان التوقيت يعني 5:6:20 مثلا تصبح 05:06:20، الفنكشن عندك اكثر شمولية لكن الصراحة ماشفت توقيت بينكتب بالفاصلة، شكرا ع التنبيه :)

دحين انا لسا ملاحظ ردك

١ -انا ما اقولك السترينق ما يصير تلزق النقط فية انا اقولك ان مايصير للارقاماللي انتا كنت مسوية

٢ - اشوف ان كودك مطول فية ع الفاضي 

٣ -الفنكشن اسموا اضافة صفر مب اضافة صفر للوقت لذالك سويتوا اكتر شمولية

٤ -ما يحتاج تبرر  كل شئ كلنا بنغلط لوول

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...