AutoPlay Media Studio – Lua string.format() ile Metin Biçimlendirme

guclusat

Tanınmış Üye
Süper Moderatör

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
için kullanılır.

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
%sMetin
%dTam sayı
%fOndalıklı sayı
%.2f2 ondalık basamak
%.5d5 haneli tam sayı
%cKarakter

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:
Geri
Yukarı