Jump to content

[Lua] #7 الجداول الجزء الأول || كيف صنع جدول والتحكم فيه


Recommended Posts

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

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

في هذا الدرس سأعلمكم كيف تصنع جدول والتحكم فيه

اولا شكل الجدول

Table = { } 

{ }اقواس الجدول هي

ويتم تعريف الجدول بـ

Table = 

ثانيا كيف تضع بداخله البيانات

يمكنك وضع بداخل الجدول جميع انواع البيانات

نفصل البيانات عن بعضها بالفاصلة مثل الارقمنات

اللتي درسناها في درس سابق

رابط الدرس :https://forum.multitheftauto.com/viewtopic.php?f=164&t=84233

مثال لضم جميع أنواع البيانات داخل الجدول

Table = { 
    "string", 'string', [[string]], [==[string]==], -- هنا جميع السلاسل النصية 
    1, 1.5, 1.424325, -1, -- هنا الارقام 
    {}, {"table"}, {["table"] = { }}, {table = { }}, -- هنا الجداول وهو درسنا اليوم 
    false, true, -- هنا مايسمى بقيم الصواب كاذب وصحيح 
    tonumber, print, function( ) return true end -- هنا بعض الوظائف 
} 

هنا بعض الجدوال تمعن بها جيدة لكي تتقن صنعها ثم تنتقل للتحكم بها

Table = { 
    "انا", 
    "انت", 
    "هو", 
} 

Table = { 
    {"الاسم", "تاريخ الملادة", "العمر", "السكن"}, 
    -- {"الاسم", "تاريخ الملادة", "العمر", "السكن"}, 
    -- {"الاسم", "تاريخ الملادة", "العمر", "السكن"}, 
    -- {"الاسم", "تاريخ الملادة", "العمر", "السكن"}, 
    -- يمكنك اضافة المزيد 
} 

Table = { 
    ["Mr.Tn6eL"] = {Rank = "King", status = "online"}, 
    -- ["Your Name"] = {Rank = "Your Rank", status = "Your Status"}, -- ضف نفسك هنا 
} 

وجدول نفس الجدول اللي فوق لكن باختلاف طريقة التوزيع

Table = { 
    ["Mr.Tn6eL"] = {["Rank"] = "King", ["status"] = "online"}, 
    -- ["Your Name"] = {["Rank"] = "Your Rank", ["status"] = "Your Status"}, -- ضف نفسك هنا 
} 

ويمكن اضافة بيانات خارج اقواس الجدول

  
Table = { } 
Table["Mr.Tn6eL"] = {["Rank"] = "King", ["status"] = "online"} 
-- Table["Your Name"] = {["Rank"] = "Your Rank", ["status"] = "Your Status"}, -- ضف نفسك هنا 

ثانيا التحكم بالجدول

التحكم بالجدول من عدة وظائف او طرق

table.insert -- لاضافة بيانات للجدول

مثال

table.insert(Table, "Insert") 
table.insert(Table, myData) 
table.insert(Table, {Name="Mr.Tn6eL", Data="King"}) 

table.remove -- لحذف بيانات من الجدول

مثال

table.remove(Table, 1) 
table.remove(Table, index) 
table.remove(Table, #Table) 

تحط رقم ترتيب البيانات

ويحذفها على طول

table.sort -- ترتيب الجدول على كيفك

مثال لترتيب الجدول من الرقم الاكبر حتى الرقم الاصغر

Table = {0, 5, 7, 15, 547, 1, 999999999, 13, 12, 131, 3} 
function sortTable(v1, v2) 
    return (tonumber(v1) or 0) > (tonumber(v2) or 0 ) 
end 
[lua]table.sort(Table, sortTable) 

مثال لترتيب اطول كلمة حتى اصغر كلمة

Table = {"هلا", "هلا وسهلا", "السلام عليكم ورحمة الله وبركاته", "مرحبا بك"} 
function sortTable(v1, v2) 
    return #(tostring(v1) or "") > #(tostring(v2) or "" ) 
end 
table.sort(Table, sortTable) 

ثالثا جلب البيانات من الجدول

طبعا في طرق كثيرة

اللوب

for Loop

مثال

Table = {"هلا", "هلا وسهلا", "السلام عليكم ورحمة الله وبركاته", "مرحبا بك"} 
for k=1,#Table do 
    print(Table[k]) 
end 

# = يجيب عدد البيانات بالجدول

مثال

Table = { 
    "item : 1", 
    "item : 2", 
    "item : 3", 
    "item : 4", 
    "item : 5" 
} 
print(#Table)-- 5 

طرق ipairs و pairs

Table = {"هلا", "هلا وسهلا", "السلام عليكم ورحمة الله وبركاته", "مرحبا بك"} 
for k,v in ipairs(Table) do 
    print(v) 
end 

k,v في ناس تسأل عن

k = key : المفتاح او الاندكس

طبعا اذ كان متعرف الاندكس او المفتاح تستخدم pairs

عشان تجيبه

v = value : قيمة الاندكس او المفتاح

يمديك تسميها اي شي بشرط مايكون مخالف لشروط المتغيرات

تجد الشروط هنا

https://forum.multitheftauto.com/viewtopic.php?f=164&t=84233

unpack

يخلي الجدول يجي على شكل متغيرات

شوف المثال وشوف كيف اخذنا بيانات الجدول

Table = {"هلا", "هلا وسهلا", "السلام عليكم ورحمة الله وبركاته", "مرحبا بك"} 
local v1, v2, v3, v4 = unpack(Table) 
print(v1) 
print(v2) 
print(v3) 
print(v4) 

Table = {"هلا", "هلا وسهلا", "السلام عليكم ورحمة الله وبركاته", "مرحبا بك"} 
print(Table[1]) -- هلا 

مثال كامل لنظام بيانات بسيط

Accounts = { } 
function findAccount(name) 
    if #Accounts == 0 then return end 
    for k,v in ipairs(Accounts) do 
        if v[1] == name then 
            return k 
        end 
    end 
    return false 
end 
  
function createAccount(name, pass) 
    if not findAccount(name) then 
        table.insert(Accounts, {name, pass}) 
        local newID = #Accounts 
        print("Account Has Been Created : Name - "..Accounts[newID][1].." Pass - "..Accounts[newID][2]) 
        return newID 
    else 
        print(name.. " Account Already Exists") 
    end 
end 
  
function getAccountName(acc) 
    local account = Accounts[acc] 
    if account then 
        print("Account Name : "..account[1]) 
        return account[1] 
    end 
end 
  
function removeAccount(acc) 
    table.remove(Accounts, acc) 
    print("Account Has Been Removed : Name - "..Accounts[#Accounts][1].." Pass - "..Accounts[#Accounts][2]) 
end 
  
function getAccounts( ) 
    return Accounts 
end 
admin = createAccount("admin", "admin") 
createAccount("guest", "guest") 
acc = createAccount("moderator", "moderator") 
removeAccount(acc) -- remove moderator 
if findAccount(acc) then 
    print("was found") 
else 
    print("was not found") 
end 
print(getAccountName(admin)) 
for k,v in ipairs(getAccounts( )) do 
    print(k, v[1], v[2]) 
end 

سأكمل الباقي غداً

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

Link to comment

وعليكم السلام

شرح رائع والحين فهمت كيف اعمل جدول عادي كلمات

لان الارقام وزول ما يهموني يهموني بس اذا بدي اعمل جدول ماركات واعرف

شكرا لك الحين عرفت كيف اعمل جدول ذي كذا

Table = { 
    ["Mr.Tn6eL"] = {["Rank"] = "King", ["status"] = "online"}, 
    -- ["Your Name"] = {["Rank"] = "Your Rank", ["status"] = "Your Status"}, -- ضف نفسك هنا 
} 

واصل يا بطل

Link to comment
وعليكم السلام

شرح رائع والحين فهمت كيف اعمل جدول عادي كلمات

لان الارقام وزول ما يهموني يهموني بس اذا بدي اعمل جدول ماركات واعرف

شكرا لك الحين عرفت كيف اعمل جدول ذي كذا

Table = { 
    ["Mr.Tn6eL"] = {["Rank"] = "King", ["status"] = "online"}, 
    -- ["Your Name"] = {["Rank"] = "Your Rank", ["status"] = "Your Status"}, -- ضف نفسك هنا 
} 

واصل يا بطل

منور ويسعدني انك فهمت :mrgreen:

Link to comment

بس ممكن سؤال يالغالي

كيف يعملون جدول زي كذا

http://cdn.top4top.net/i_546858de402.png

هذا صوره لمود برو قيمر كيف هو عامل الجدول الي بنط

وكيف رابط كل سطر مثال اول سطر هو رقصه

كيف رابط انه بس الاعب يضغط على اول سطر الرقصه يصير يرقص

اتمنى فهمت عليي

Link to comment
بس ممكن سؤال يالغالي

كيف يعملون جدول زي كذا

http://cdn.top4top.net/i_546858de402.png

هذا صوره لمود برو قيمر كيف هو عامل الجدول الي بنط

وكيف رابط كل سطر مثال اول سطر هو رقصه

كيف رابط انه بس الاعب يضغط على اول سطر الرقصه يصير يرقص

اتمنى فهمت عليي

هذا قريد ليست مو جدول

هو يسوي لوب على جميع محتويات الجدول ويضيفها بالقريد ليست

عشان اختبر انك فهمت

سوي جدول وحط اللي تبيه فيه

وسوي لوب

وحط

guiGridListAddRow -- اضافة صف 
guiGridListSetItemText -- تغير كلام الصف 
guiGridListSetItemData -- وضع داتا للصف 
Edited by Guest
Link to comment
انا ممكن تقلي كيف مثال لو حطات جداول من السيريالات

كيف راح اعرف الجدول انه سيريالات معقوله احط جدول بدون ما اعرف شو وظيفته

بس بدي ياك تعمل كذا

مني فاهم

تبي تسوي جدول تحط في سريالات

سوي كذا

Serials = { } 
Serials[player] = getPlayerSerial(player) 
Link to comment
  • 3 weeks later...

شكرا لك على الشرح الجميل

بس عندي سؤال بسيط, كيف اطلع قيمه عشوائيه من الجدول

بستخدام

table.random 

اطلع القيمه و من القيمه ذي مثلا اخرج له كلام بالشات

Link to comment
شكرا لك على الشرح الجميل

بس عندي سؤال بسيط, كيف اطلع قيمه عشوائيه من الجدول

بستخدام

table.random 

اطلع القيمه و من القيمه ذي مثلا اخرج له كلام بالشات

table.random وظيفة مفيدة أي ليست من مطوري اللغة

هذا مثال بسيط

Messages = { 
    "Hello", 
    "Hello Guest", 
    "Hello Lua User", 
    "1", 
    "2", 
    "3", 
    "4", 
    "5", 
} 
  
print(Messages[math.random(#Messages)]) 

Link to comment
شكرا لك على الشرح الجميل

بس عندي سؤال بسيط, كيف اطلع قيمه عشوائيه من الجدول

بستخدام

table.random 

اطلع القيمه و من القيمه ذي مثلا اخرج له كلام بالشات

table.random وظيفة مفيدة أي ليست من مطوري اللغة

هذا مثال بسيط

Messages = { 
    "Hello", 
    "Hello Guest", 
    "Hello Lua User", 
    "1", 
    "2", 
    "3", 
    "4", 
    "5", 
} 
  
print(Messages[math.random(#Messages)]) 

الوظائـــف المفيده ما تســتخدم بالبرمـجــه؟ولاكيف

وش تــسوي print

Link to comment
شكرا لك على الشرح الجميل

بس عندي سؤال بسيط, كيف اطلع قيمه عشوائيه من الجدول

بستخدام

table.random 

اطلع القيمه و من القيمه ذي مثلا اخرج له كلام بالشات

table.random وظيفة مفيدة أي ليست من مطوري اللغة

هذا مثال بسيط

Messages = { 
    "Hello", 
    "Hello Guest", 
    "Hello Lua User", 
    "1", 
    "2", 
    "3", 
    "4", 
    "5", 
} 
  
print(Messages[math.random(#Messages)]) 

الوظائـــف المفيده ما تســتخدم بالبرمـجــه؟ولاكيف

وش تــسوي print

جواب السؤال الأول :

تستخدمها لكن ضع كود الوظيفة بالسكرت

جواب السؤال الثاني :

print تطبع رسالة بالكونسل

Link to comment
  • 2 weeks later...
  • 2 weeks later...

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...