AutoPlay Media Studio Lua'da Table Sıralama
AutoPlay Media Studio içerisinde Lua kullanırken elimizde bulunan bir tabloyu
sayısal veya alfabetik olarak sıralamak için table.sort() fonksiyonunu kullanabiliriz.
Bu fonksiyon özellikle liste, menü, dosya arşivi ve veritabanından alınan bilgilerin düzenlenmesinde kullanılabilir.
1. Sayıları küçükten büyüğe sıralama
Öncelikle bir tablo oluşturalım:
tablo = {2, 5, 1, 3, 4}
Şimdi table.sort() ile sıralayalım:
table.sort(tablo)
Sonucu görmek için:
Dialog.Message("Sonuç", table.concat(tablo, ", "));
Çıktı:
1, 2, 3, 4, 5
table.sort() varsayılan olarak sayıları
küçükten büyüğe sıralar.
2. Alfabetik sıralama
Aynı fonksiyon metinleri de alfabetik olarak sıralayabilir:
tablo = {"Uydu", "Elektronik", "Anten", "Televizyon", "Kablo"}
table.sort(tablo)
Dialog.Message("Sonuç", table.concat(tablo, ", "));
Bu şekilde listedeki metinler alfabetik sıraya alınır.
3. Z-A şeklinde ters sıralama
Tersten sıralamak için table.sort() fonksiyonuna bir karşılaştırma fonksiyonu verebiliriz:
tablo = {"z", "a", "n", "l", "m"}
table.sort(tablo, function(i, v)
return i > v
end)
Dialog.Message("Sonuç", table.concat(tablo, ", "));
Bu durumda sonuç:
z, n, m, l, a
şeklinde olacaktır.
4. SQLite verilerini sıralamak
Eğer bilgiler SQLite veritabanından alınıyorsa, çoğu durumda Lua tarafında table.sort() kullanmak yerine
SQL sorgusu içerisinde ORDER BY kullanmak daha pratiktir.
Örneğin musteriler tablosundaki kayıtları id alanına göre küçükten büyüğe sıralamak:
SQLite3Cursor, err = SQLite3Connection:execute(
"SELECT * FROM musteriler ORDER BY id ASC"
);
Büyükten küçüğe sıralamak için:
SQLite3Cursor, err = SQLite3Connection:execute(
"SELECT * FROM musteriler ORDER BY id DESC"
);
Burada:
- ASC → Küçükten büyüğe / A-Z
- DESC → Büyükten küçüğe / Z-A
anlamına gelir.
Örneğin müşteri adına göre alfabetik sıralama:
SQLite3Cursor, err = SQLite3Connection:execute(
"SELECT * FROM musteriler ORDER BY adivesoyadi ASC"
);
5. Hangisini kullanmalıyız?
Elimizde normal bir Lua tablosu varsa:
table.sort(tablo)
kullanabiliriz.
Veriler doğrudan SQLite veritabanından geliyorsa:
ORDER BY
kullanmak daha doğrudan bir çözümdür.
Özetle table.sort() Lua tablolarını sıralamak, ORDER BY ise SQL sorgusunun sonucunu sıralamak için kullanılabilir.
Bu örnekler güncel AutoPlay Media Studio 9.x projelerinde Lua kodlarını öğrenmek ve özellikle
AIO, teknik arşiv ve veritabanı uygulamalarında listeleme işlemleri yapmak için kullanılabilir.