AutoPlay Media Studio – Lua string.format() ile Metin Biçimlendirme
AutoPlay Media Studio projelerinde birden fazla değişkeni bir metin içerisinde kullanırken .. operatörüyle birleştirme yapmak yerine Lua'nın yerleşik string.format() fonksiyonundan yararlanabilirsiniz.string.format() özellikle çok sayıda değişkenin bulunduğu metinlerde kodun daha düzenli ve okunabilir olmasını sağlar.
string.format() kullanımı
Temel sözdizimi:string.format(format_string, ...)
Örneğin:
nHwnd = Application.GetWndHandle();
szTitle = "My Application";
szMessage = "Hello From My Application";
nPage = 12;
local Args = string.format("%d,%s,%s,%d", nHwnd, szTitle, szMessage, nPage);
Burada:
- %d → Tam sayı
- %s → Metin
- %f → Ondalıklı sayı
- %c → Karakter
Normal birleştirme yöntemi
Değişkenleri .. operatörü ile birleştirdiğimizde kod şu şekilde olabilir:nHwnd = Application.GetWndHandle();
szTitle = "My Application";
szMessage = "Hello From My Application";
nPage = 12;
local Args = "" .. nHwnd .. ",\"" .. szTitle .. "\",\"" .. szMessage .. "\"," .. nPage;
Aynı işlemi string.format() ile daha düzenli şekilde yazabiliriz:
nHwnd = Application.GetWndHandle();
szTitle = "My Application";
szMessage = "Hello From My Application";
nPage = 12;
local Args = string.format("%d,%s,%s,%d", nHwnd, szTitle, szMessage, nPage);
Bu kullanım özellikle çok sayıda değişken olduğunda kodun okunmasını kolaylaştırır.
Sayıyı belirli basamaklarla göstermek
string.format() kullanarak sayıları belirli bir biçimde gösterebilirsiniz.Örneğin:
str = string.format("%.2d", 1);
Sonuç:
01
Beş haneli göstermek için:
str = string.format("%.5d", 123);
Sonuç:
00123
Ondalıklı sayı biçimlendirme
Ondalıklı sayılar için %f kullanılabilir.Örneğin:
str = string.format("%.2f", 1200);
Sonuç:
1200.00
Bu yöntem fiyat, voltaj, sıcaklık, ölçüm değeri veya benzeri sayısal bilgileri belirli bir formatta göstermek için kullanılabilir.
Metin uzunluğunu sınırlama
%s ile birlikte hassasiyet değeri kullanarak gösterilecek metnin uzunluğunu sınırlayabilirsiniz:str = string.format("%.6s ...", "Serkan's World");
Sonuç:
Serkan ...
Bu yöntem özellikle uzun başlıkları veya açıklamaları belirli bir karakter sayısıyla sınırlamak için kullanılabilir.
Birden fazla veriyle örnek
Örneğin:local Yas = 23;
local Maas = 1200;
local Donem = "Ay";
local Metin = string.format(
"%d yaşındaki kızım ayda %.2f dolar kazanıyor.",
Yas,
Maas
);
Burada %d yaş değerini, %.2f ise maaş değerini biçimlendirir.
AMS 8 ve AMS 9 için not
AutoPlay Media Studio 8, Lua 5.1 kullanır. AMS 9 ile birlikte Lua sürümü 5.3'e yükseltilmiştir. string.format() her iki Lua sürümünde de kullanılabilen temel Lua fonksiyonlarından biridir; ancak eski projeleri yeni AMS sürümüne taşırken genel Lua sözdizimi ve davranış değişiklikleri ayrıca kontrol edilmelidir.AMS 9'da özellikle sayısal değerleri metne dönüştürürken belirli bir çıktı biçimine ihtiyaç varsa açık bir format kullanılması önerilir. Örneğin:
local Deger = 2.0;
local Metin = string.format("%.2f", Deger);
Sonuç:
2.00
Kısaca format belirteçleri
| Belirteç | Kullanım |
|---|---|
| %s | Metin |
| %d | Tam sayı |
| %f | Ondalıklı sayı |
| %.2f | 2 ondalık basamak |
| %.5d | 5 haneli tam sayı |
| %c | Karakter |
Sonuç
AutoPlay Media Studio'da çok sayıda değişkeni bir metin içerisinde kullanırken string.format() fonksiyonu kodun daha düzenli ve okunabilir olmasını sağlar.Örneğin:
local Metin = string.format(
"Sayfa: %d - Başlık: %s",
nPage,
szTitle
);
şeklinde tek bir format şablonu üzerinden farklı değişkenleri kolayca birleştirebilirsiniz.
Arşiv notu: Bu konu, eski AutoPlay Media Studio ve Lua 5.1 anlatımını korumak amacıyla güncellenmiştir. AMS 9'da Lua 5.3 kullanıldığından, eski projeler yeni sürüme aktarılırken Lua uyumluluğu da kontrol edilmelidir.
Son düzenleme: