Strsub fonksiyonunu tam anlamıyla kullanabiliyorsanız, yazdığım bu fonksiyonu da rahatlıkla kullanabilirsiniz. Strsub bir yazı bütününü harf harf ele alırken, Strarray yazı bütünündeki virgülleri ele alır.
Bir çok yerde kullanabilir ve işinizi kolaylaştırabilirsiniz.
[FUNCTION strarray]
local._array = <argn1>
local._endar = <eval (<argn1>+<argn2>)-1>
IF (<argn1> >= <argv>)
local._array = 0
local._endar = <eval <argn2>-1>
ENDIF
IF (<argn1> < 0)
local._array = <eval <argv>+<argn1>>
local._endar = <eval (<local._array>+<argn2>)-1>
ENDIF
IF (<argn2> == 0) || (<local.endar> >= <argv>)
local._endar = <eval <argv>-1>
ENDIF
FOR <local._array> <local._endar>
local._return .= ,<argv[<local._for>]>
ENDFOR
IF (<local._array> == 0)
local._return = <streat <streat <streat <local._return>>>>
ELSE
local._return = <streat <local._return>>
ENDIF
RETURN <local._return>
Kullanım örnekleri
Örnek yazı bütününü, virgüllere ayırıp denemek için kendimize bir <tag> alarak başlayabiliriz.
tag.uotools lorem, ipsum, dolor, sit, amet
[FUNCTION doit]Gösterilen sonuç: lorem
say <strarray 0 1 <tag.uotools>>
- Gösterilecek sonucu belirlemek için birinci ve ikinci koşul değerlerini değiştirebilirsiniz.
- Birinci koşul kaçıncı değerden başlayacağına yararken, ikinci koşul sonuçta kaç değer olacağını belirler.
Değer sonuç listesi 1 (lorem, ipsum, dolor, sit, amet için)
0 1 lorem
0 2 lorem, ipsum
0 3 lorem, ipsum, dolor
0 4 lorem, ipsum, dolor, sit
0 5 lorem, ipsum, dolor, sit, amet
- İkinci koşul ile birinci koşulun toplamı, virgülle ayrılan kelime sayısından büyükse metin tam sonuçlanır. (örnek A)
- Sadece birinci koşul eksi değer olabilir. İkinci koşul eksi değer olamaz.
- İkinci koşul 0 (sıfır) ise, birinci koşula denk gelenden sonra metin tam sonuçlanır. (örnek B)
Değer sonuç listesi 2 (lorem, ipsum, dolor, sit, amet için)
1 1 ipsum
1 3 ipsum, dolor, sit
0 0 lorem, ipsum, dolor, sit, amet (örnek B)
2 0 dolor, sit, amet (örnek B)
2 1 dolor
2 2 dolor, sit
2 3 dolor, sit, amet
2 4 dolor, sit, amet (örnek A)
1 9 ipsum, dolor, sit, amet (örnek A)
Birinci koşul için eksi değerler
Eksi değer, metni tersten sıralatmak içindir. Strsub mantığı ile aynı olduğundan bu özelliği de eklemeyi doğru buldum. Kullanım yeri artık size kalıyor.
[FUNCTION doit]Gösterilen sonuç: amet
say <strarray -1 1 <tag.uotools>>
Değer sonuç listesi 3 (lorem, ipsum, dolor, sit, amet için)
-1 1 amet
-2 1 sit
-2 2 sit, amet
-4 2 ipsum, dolor, sit
-4 3 ipsum, dolor, sit, amet
-5 4 lorem, ipsum, dolor, sit
-5 5 lorem, ipsum, dolor, sit, amet
-5 0 lorem, ipsum, dolor, sit, amet
-5 1 lorem
-5 2 lorem, ipsum
- Birinci koşul, sadece virgülle ayrılan kelime sayısından büyükse, ilk virgülle başlayan değer sonuçlanır. (örnek C)
- İkinci koşul ile birinci koşulun düzden sıralamasının toplamı, virgülle ayrılan kelime sayısından büyükse metin tam sonuçlanır. (örnek D)
Değer sonuç listesi 4 (lorem, ipsum, dolor, sit, amet için)
-7 1 lorem (örnek C)
-9 2 lorem, ipsum (örnek C)
-9 0 lorem, ipsum, dolor, sit, amet (örnek C)
-5 6 lorem, ipsum, dolor, sit, amet (örnek D)
-5 8 lorem, ipsum, dolor, sit, amet (örnek D)
-4 9 ipsum, dolor, sit, amet (örnek D)
-8 8 lorem, ipsum, dolor, sit, amet (örnek C) ve (örnek D)
-7 9 lorem, ipsum, dolor, sit, amet (örnek C) ve (örnek D)
Sonuç olarak strarray fonksiyonu
Kullanım alanı bir hayli geniş olmakla birlikte, işinizi de o denli kolaylaştırabilecek bir fonksiyondur. Kullanımına alıştığınız da, sistemlerinizi bu fonksiyon ile birlikte sadeleştirip daha anlaşılır hale getirebilirsiniz.
Hiç yorum yok:
Yorum Gönder