utf8.codes
Örnek
Fonksiyonun kullanımını gösterir.
Çıktı:
1 40
2 32
3 865
5 176
7 32
8 860
10 662
12 32
13 865
15 176
17 41
Örnek
DLabel içinde metin animasyonu. utf8.sub'dan daha hızlı çalışır.
local str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Кириллица. Nam vel nunc quis nisl convallis ultrices. Suspendisse potenti. Quisque feugiat tincidunt aliquet. Curabitur id purus id nisi bibendum laoreet eu a lacus. Sed vel sollicitudin lorem."
local frame = vgui.Create("DFrame")
frame:SetSize(ScrW() * 0.4, ScrH() * 0.4)
frame:SetTitle("utf8.codes example")
frame:Center()
local label = vgui.Create("DLabel", frame)
label:Dock(TOP)
label:SetWrap(true)
label:SetFont("ChatFont")
label.symbolsToProcess = 0
label.Think = function(self)
-- 'str' dizgesinden gelen karakterleri içerecek olan tablo
local characters = {}
-- Şu anda kaç karaktere sahip olduğumuz. Yeni karakterler eklemek için kullanılır
local curLen = 0
-- İşlememiz gereken sembol sayısı
-- Mevcut Think() üzerindeki metnin uzunluğuyla eşleşecektir
self.symbolsToProcess = self.symbolsToProcess + 1
for _, code in utf8.codes(str) do
if curLen >= self.symbolsToProcess then
break
end
curLen = curLen + 1
characters[curLen] = utf8.char(code)
end
self:SetText(table.concat(characters))
-- Yeni satırlar olabileceğini varsayarak DLabel'ın yüksekliğini günceller
self:SizeToContentsY(0)
end
Çıktı: 

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord