AR/String

From Multi Theft Auto: Wiki
Revision as of 10:36, 25 August 2012 by Krsofa (talk | contribs)
Jump to navigation Jump to search

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


<right>KrSoFa ملاحظة: هذه المكتبه من ترجمتي الخاصه انا

اذا أردت أضافة حدث للمكتبه او تعديل خطأ بالترجمه او التنسيق او إضافة مثآل

فيمكنك القيام بما تريد ماعدا( حذف اي حرف بلا حق)ا.</right>





نبدأ على بركة الله باأول داله بالمكتبه

string.upper وهي دالة


تستخدم للتحويل حالةالاحرف من الاحرف الصغيره الى الاحرف الكبيره
.



Click to collapse [-]
server

test1 = string.upper("Hello, Lua user!")

HELLO, LUA USER!









___________________________________________________________________


string.sub

تستخدم لتحديد بداية ونهاية السلسله ، حيث ان الرقم الاول يحدد بداية السلسه
والرقم الثاني يحدد نهاية السلسه 
وعند وضع الرقم بالسالب سوف تقوم بتحديد السلسه بالعكس




Click to collapse [-]
server

test1 = string.sub("Hello Lua user", 7)
Lua user

test2 = string.sub("Hello Lua user", 7, 9)
Lua


test3 = string.sub("Hello Lua user", -8)
Lua


test4 = string.sub("Hello Lua user", -8,9)
Lua


test5 = string.sub("Hello Lua user", -8,-6)
Lua



___________________________________________________________________



string.reverse

تستخدم لعكس السلسه
.



Click to collapse [-]
server

test1 = string.reverse("krsofa")

afosrk







___________________________________________________________________





string.rep

 تستخدم لنسخ السلسه على حسب الرقم
.



Click to collapse [-]
server

test1 = string.rep("Lua ",5)
Lua Lua Lua Lua Lua


test2 = string.rep("KrSoFa\n",3)
KrSoFa                                                                 
KrSoFa
KrSoFa






___________________________________________________________________







string.lower

 تستخدم للتحويل حالةالاحرف من الاحرف الكبيره الى الاحرف الصغيره
.



Click to collapse [-]
server

test1 = string.lower("Hello, KrSoFa user!")
hello, krsofa user!






___________________________________________________________________






string.len

 تستخدم لمعرفة طول السلسله 
.



Click to collapse [-]
server

test1 = string.lower("Hello, KrSoFa user!")
hello, krsofa user!


test1  = string.len("Lua")
3
test2  = string.len("")
0
test3  = string.len("Lua\000user")   -- Lua strings are 8 bit pure so \000 does not terminate
8




___________________________________________________________________









string.gsub

 هذه هي وظيفة قوية جدا، ويمكن استخدامها بطرق متعددة
 يمكن أن تستخدم للتبديل والاستبدال
.



Click to collapse [-]
server

-- المثال الاول يقوم بتنقيح لـ كلمة
-- banana 
 
test1 = string.gsub("Hello banana", "banana", "Lua user")
Hello Lua user  1


-- المثال الثاني يقوم بااستبدال الاحرف الاولى الصغيره 
-- a
-- الى احرف كبيره A
-- ويقوم بالاستبدال مرتين فقط
 

test2 = string.gsub("banana", "a", "A", 2)  -- limit substitutions made to 2
bAnAna  2


 


 ويمكن أيضا إستخدامها مع الوظايف function


Click to collapse [-]
server

--  المثال الاول يقوم بطباعة السلسله

test1 = string.gsub("Hello Lua user", "(%w+)", print)  -- print any words found
Hello
Lua
user
        3


--  المثال الثاني يقوم بتحديد طول السلسله

test2 = string.gsub("Hello Lua user", "(%w+)", function(w) return string.len(w) end) -- replace with lengths
5 3 4   3


--  المثال الثالث بااستبدال الحرف الى حروف كبيره

test3 = string.gsub("banana", "(a)", string.upper)     -- make all "a"s found uppercase
bAnAnA  3


--  المثال الثالث الوظيفه تقوم بتبديل بين الحرفين

test4 = string.gsub("banana", "(a)(n)", function(a,b) return b..a end) -- reverse any "an"s
bnanaa  2



___________________________________________________________________


string.format

 هذه لتنسيق 
 يمكن أن تستخدم لتنسيق السلسله والمتغيرات
.


Click to collapse [-]
server


function getPlayerStats(thePlayer)
    local account = getPlayerAccount(thePlayer)
    if account then
        local kills = getAccountData(account,"kills") or 0
        local deaths = getAccountData(account,"deaths") or 0
        local ratio = string.format("%.2f", kills / deaths)
        outputChatBox("s Stats: Kills: ".. tostring(kills) .." ), ".. tostring(deaths) .." Deaths, Ratio: ".. tostring(ratio).."", getRootElement(), 50, 255, 0)
    end
end
addCommandHandler("stats",getPlayerStats)



-- مثال لتحويل اللوان الى هيكس


function chatbox(text, msgtype)

    local account = getAccountName(getPlayerAccount(source))

    local name = getPlayerName(source)

    local tag = getElementData(source, "ID") or 0

    local r, g, b = getPlayerNametagColor(source)

    local hex = RGBToHex(r, g, b)

    if (msgtype == 0) then

        if isObjectInACLGroup("user." .. account, aclGetGroup("HeadAdmin")) then

            cancelEvent(true)

            outputChatBox(" #cccccc[".. tag .."]  #8B1A1A[HEADADMIN] ".. hex .."".. name ..": #FFFFFF".. text, root, 255, 255, 255, true)

            outputServerLog("CHAT: [HEADADMIN] " .. name .. ": " .. text)

        elseif isObjectInACLGroup("user." .. account, aclGetGroup("Admin")) then

            cancelEvent(true)

            outputChatBox("#cccccc[".. tag .."]   #FF0000[ADMIN] ".. hex .."" .. name ..": #FFFFFF" .. text, root, 255, 255, 255, true)

            outputServerLog("CHAT: [ADMIN] " .. name .. ": " .. text)

        elseif isObjectInACLGroup("user." .. account, aclGetGroup("Moderator")) then

            cancelEvent(true)

            outputChatBox("#cccccc[".. tag .."]   #00FF00[MODERATOR] ".. hex .."" .. name .. ": #FFFFFF" .. text, root, 255, 255, 255, true)

            outputServerLog("CHAT: [MODERATOR] " .. name .. ": " .. text)

        elseif isObjectInACLGroup("user." .. account, aclGetGroup("Everyone")) then

            cancelEvent(true)

            outputChatBox("#cccccc[".. tag .."] #FFFFFF".. hex .."" .. name .. ": #FFFFFF" .. text, root, 255, 255, 255, true)

            outputServerLog("CHAT: " .. name .. ": " .. text)

        end

    end

end

addEventHandler("onPlayerChat", root, chatbox)

 

function RGBToHex(red, green, blue, alpha)

    if((red < 0 or red > 255 or green < 0 or green > 255 or blue < 0 or blue > 255) or (alpha and (alpha < 0 or alpha > 255))) then

        return nil

    end

    if(alpha) then

        return string.format("#%.2X%.2X%.2X%.2X", red,green,blue,alpha)

    else

        return string.format("#%.2X%.2X%.2X", red,green,blue)

    end

end








-- لتحويل السلسله النصيه الى سلسله نصيه مقتبسه بعلامتي التنصيص

test9 = string.format("%s %q", "Hello", "Lua user!")   -- string and quoted string
Hello "Lua user!"



test10 = string.format("%c%c%c", 76,117,97)             -- char
Lua



-- مثال لاستخدام الأس

test11 = string.format("%e, %E", math.pi,math.pi)       -- exponent
3.141593e+000, 3.141593E+000

-- مثال لاستخدام float
test12 = string.format("%f, %g", math.pi,math.pi)       -- float and compact float
3.141593, 3.14159

test13 = string.format("%d, %i, %u", -100,-100,-100)    -- signed, signed, unsigned integer
-100, -100, 4294967196


test14 = string.format("%d, %i, %u", -100,-100,-100)    -- signed, signed, unsigned integer
-100, -100, 4294967196


test15 = string.format("%o, %x, %X", -100,-100,-100)    -- octal, hex, hex
37777777634, ffffff9c, FFFFFF9C




___________________________________________________________________




string.find

  للبحث  بالسلسله 
.يجب ان تكون السلسله بعد التحميل later loadstring



Click to collapse [-]
server

-- مثال للبحث عن كلمة  في سلسله
--

test1 = string.find("Hello Lua user", "Lua")
7       9
test2 = string.find("Hello Lua user", "banana")
nil




-- للبحث عن كلمه بااستخدام تحديد مكان البحث
-- بالرقم 

test3 = string.find("Hello Lua user", "Lua", 1)  -- start at first character
7       9
test4 = string.find("Hello Lua user", "Lua", 8)  -- "Lua" not found again after character 8
nil
test5 = string.find("Hello Lua user", "e", -5)   -- first "e" 5 characters from the end
13      13


-- مثال للبحث بااستخدام PatternsTutorial 
test6 = string.find("Hello Lua user", "%su")          -- find a space character followed by "u"
10      11

test7 = string.find("Hello Lua user", "%su", 1, true) -- turn on plain searches, now not found
nil








___________________________________________________________________






string.char

  character codes  تستخدم لتكوين سلسلة نصيه من 
.



Click to collapse [-]
server


test1 = string.char(65,66,67)
ABC
test2 = string.char()  -- empty string



___________________________________________________________________



string.byte

  character codes  تستخدم  لتحويل من سلسلة نصيه الى 
.



Click to collapse [-]
server


test1 = string.byte("ABCDE")      -- عند عدم التحديد يتم استخدام الحرف الاول للتحويل
65

test2 = string.byte("ABCDE",1)    -- تحويل الحرف الاول
65

test3 = string.byte("ABCDE",0)    -- لا يعمل عند عدم التحديد

test4 = string.byte("ABCDE",100)  -- القيمه اعلى من السلسله 

test5 = string.byte("ABCDE",3,4) -- تحويل الحرف الثالث والرابع
67      68



s = "ABCDE"
test6 = s:byte(3,4)               -- يمكن استخدام المتغير مع الداله بااستخدامها هكذا
67      68




___________________________________________________________________ ___________________________________________________________________

دوال لم يتم ترجمتها ووضع امثله عليها


string.gmatch()

string.dump(function)

string.match (s, pattern [, init])