Türkiye'nin en eski ve aktif online oyun platformu, Ultima Online, Counter-Strike ve diğer online oyunlar hakkında Türkçe haber, bilgi ve forum sunuyor. Türkiye'nin en eski ve aktif online oyun platformu, Ultima Online, Counter-Strike ve diğer online oyunlar hakkında Türkçe haber, bilgi ve forum sunuyor.
  • ANASAYFA
  • ULTIMA ONLINE
    • Ultima Online Oyuncu Rehberi

      Ultima Online Oyuncu Rehberi

      Oyunu hakkında tanıcı bilgiler ve ipuçları

    • Ultima Online Server List

      Ultima Online Server List

      Önemli özellikleri ve online oyuncu sayıları

    • Ultima Online Script

      Ultima Online Script

      Sphere, RunUO, Razor scriptleri

    • Ultima Online Forum

      Ultima Online Forum

      UO hakkında görüş alışverişi

  • FORUM
  • DOKÜMAN
  • İNDİR
  • DISCORD 24
   Üye ol    Giriş
185
  1. Doküman
  2. Ultima Online
  3. Sphere
  4. Temel String Tanımlamaları
Slothere

Temel String Tanımlamaları

  • Slothere
  • Slothere
  • 2009-09-10 15:50
  • 3 Yorumlar
  • 5657 Görüntüleme

- Bu döküman Ultima-Strike.com adresinde kullanılması amacı ile tarafımca (Slothere) hazırlanmıştır. Genel olarak SphereServer'ın orjinal kaynağından çeviri yapılmış olsa da kendi örnekleme ve anlatımlarım ile daha anlaşılabilir
olduğunu düşünüyorum. Eğer eksik bir kısım veya anlayamadığınız bir bölüm olursa bana özel mesaj atmanız yeterli.




Temel Kullanım



İlk olarak sphere üzerinde kelime ayırma yöntemleri ile başlayalım. Sphere'da kullanılan en temel kelime ayıracı olarak virgülü (,) gösterebiliriz. Bir çok fonksiyon üzerinde virgül kullanarak kelimelerinizi rahatça ayırabilir, virgül ile ayırdığınız bölümleri rahatça bütünden ayırabilirsiniz.

Örnek;


[FUNCTION f_karakter]
SYSMESSAGE Argumanlar: <ARGV>
SYSMESSAGE 1. Arguman: <ARGV[0]>
SYSMESSAGE 2. Arguman: <ARGV[1]>
SYSMESSAGE 3. Arguman: <ARGV[2]>


Şimdi bu komutu "f_karakter Merhaba Ultima-Strike Üyeleri" şeklinde kullanırsak eğer sol tarafta görünen yazımız şu
şekilde olucak,


Argumanlar: 1
1. Arguman: 
2. Arguman:
3. Arguman:


İstediğimiz gibi olmadı değil mi? Biz yazdığımız cümle içindeki belli bölümleri ayırıp 1. Arguman, 2. Arguman şeklinde ayırmak istiyoruz. Bu şekilde yazmasının yegâne nedeni olarak boşluk kullanmamızı söyleyebilirim. Eğer bu şekilde kullanımda boşluk kullanırsak kelimeler virgül ile ayrılmadığı için bir bütün olarak karşımıza çıkacaktır ve ARGV[x] şeklindeki ayırmalarımızda karşımıza ayrılmış bir bölüm çıkmayacaktır. Eğer biz bu cümle içindeki tüm karakterlerin şu şekilde ayrılmasını istiyorsak;

1. Arguman: Merhaba
2. Arguman: Ultima-Strike
3. Arguman: Üyeleri

bu defa ayırmak istediğimiz kelimenin arasına virgül (,) koymamız gerekli. Hatırlarsanız üstte fonksiyonu kullanırken "f_karakter Merhaba Ultima-Strike Üyeleri" şeklinde yazmıştık. Şimdi "f_karakter Merhaba, Ultima-Strike, Üyeleri" şeklinde kullanıp oluşan sonuca göz atalım. Bu şekilde kullanıldığında karşımıza gelicek sonuç şu şekilde olacaktır,


Argumanlar: 3
1. Arguman: Merhaba
2. Arguman: Ultima-Strike
3. Arguman: Üyeleri


Üstteki "Argumanlar" kısmındaki değer, yazdığımız yazıdaki ayrılmış bölümlerin sayısını bize verecektir. Üst kısımda 1 yazmasnının nedeni yazdığımız yazıyı tek bir bütün olarak görmesi idi. İkinci örnekte kelimeleri virgül ile ayırdığımız için bu sefer her bir bütün olarak ayırdığımız kelimelerin toplam sayısını görmüş olduk.




STRARG




"STRARG" komutu yazdığınız bir dizi içerisinde, ilk boşluktan önceki kelimeyi size geri döndürür.

Örnek;


[FUNCTION test]
SYSMESSAGE <STRARG Ultima Strike>
SYSMESSAGE <STRARG Merhaba arkadaşlar>


şeklindeki fonksiyonu kullandığımızda bize dönen değerler "Ultima" ve "Merhaba" olacaktır.




STREAT



"STREAT" komutu "STRARG" komutunun tam tersi şeklinde işler. "STRARG" komutunda ilk boşluktan önceki kelime size dönerken, "STREAT" komutunda ilk boşluktan sonraki kelimeler dönecektir. Üstteki örneğin aynısını kullanarak bu sefer "STREAT" komutu üzerindeki işleyişe bir göz atalım.


[FUNCTION test]
SYSMESSAGE <STREAT Ultima Strike>
SYSMESSAGE <STREAT Merhaba arkadaşlar>

Bu sefer bize dönen değerler "Strike" ve "arkadaşlar" olacaktır.




STRCMP



String karşılaştırılmalarında kullanılan bir fonksiyondur. String'ler sayısal değerler gibi (string1 = string2) şeklinde kontrol edilemezler. Diğer kontroller sadece sayısal değerlerin kontrol edilmesi için yaratılmışlardır. İki string karşılaştırılacağı zaman sadece belirli komutları kullanabilirsiniz. Bu komutlardan ilk olarak "STRCMP" komutunu ele alalım.

Mesela string1 ve string2 adında iki tane kelimemiz var ve bunların birbiri ile olan ilişkilerini kontrol etmek istiyoruz. Yapmamız gereken şey;


STRCMP(string1, string2)


şeklinde kullanmak. Burada size dönecek sonuç 3 ihtimallidir. Bu ihtimaller;

DeğerAnlamı
-1string1, string2'den küçüktür
0iki dizi birbirine eşittir
1string1, string2'den büyüktür

Burada dikkat edilmesi gereken en önemli husus dönüş değerleridir. Mesela dönen değer yanlış, yani "0" olduğunda iki değer birbirine eşit anlamındadır. Daha iyi anlaşılması açısından bir örnek verelim.


[FUNCTION test]
IF !STRCMP(<SRC.NAME>, Slothere)
  SRC.SAY Benim adım Slothere.
ENDIF

Burada eğer "STRCMP(<SRC.NAME>, Slothere)" şeklinde yapsaydık iki değer birbirine eşit olduğu için dönen değer "1" olacaktı. Ancak bu komutta dönecek olan 1 değeri ilk değerin, diğer değerden büyük olduğu anlamında kullanılıyor. Bizim eşit olduğunu kontrol edebilmemiz için "0" değerini döndürmemiz lazım. O yüzden "eşitse" demek yerine ters
mantık "eşit değilse" demeliyiz. Bu şekilde dönen değerimiz "1" yerine "0" olacaktır ve istediğimiz sonuca kolayca ulaşabileceğiz.

Son olarak bu komuttaki belki de en önemli kısmı açıklamak istiyorum. "STRCMP" komutunu kullandığınızda karşılaştırılan değerler büyük küçük harf duyarlı olarak kontrol edilirler. Mesela sizin isminiz Slothere ve siz kontrol ederken bunu slothere, SLothere, sLothere gibi büyük küçük harf eşit şekilde olmadan girdiniz. Fonksiyon her ne kadar değerler doğru dahi olsa büyük küçük harf hassasiyetinden dolayı sonucu yanlış olarak nitelendirecektir



STRCMPI



Aslında bu komutu detaylıca anlatmaya gerek yok. İşleyişi tamamen STRCMP ile aynıdır. Ancak STRCMP ile STRCMPI arasındaki tek fark, STRCMP kontrollerde büyük küçük harfe duyarlıdır. STRCMPI'de ise bu şekilde bir hassasiyet mevcut değildir.




STRLEN



STRLEN komutu, yazdığınız parçadaki karakter sayısını size geri döndürür. Örneklemek gerekirse;


[FUNCTION test]
SYSMESSAGE <EVAL STRLEN(<ARGS>)>

Mesela "Ultima-Strike Slothere" yazdığımızda bize dönecek değer 22 olacaktır. Boşluklar da karakter sayısına eklenir.



STRREVERSE



STRREVERSE komutu girdiğiniz kelimedeki harfleri tersine çevirir. Örnek olarak;


SYSMESSAGE <STRREVERSE Total Refresh Potion>

yapıldığında dönen değer "noitoP hserfeR latoT" olacaktır.




STRSUB



STRSUB girilen değerler içerisinde belli bir bölümü veya bir karakteri almaya yarar. Örnek olarak;


[FUNCTION test]
SYSMESSAGE <STRSUB 0 3 Merhaba Ultima-Strike>

komutunu kullandığımızda bize dönen değer "Mer" olacaktır. Bunu kendi kullanım alanınız ve hayal gücünüze göre çeşitli yerlerde kullanabilirsiniz. Daha basit bir anlatım olarak bunu; 0 3 değerlerini "0. karakterden itibaren 3 karakter al" şeklinde, 5 10 değerlerini "5. karakterden itibaren 10 karakter al" şeklinde anlatmakta mümkün.

Ayriyetten şu şekilde güzel bir kullanış şekli daha bulunmakta,


[FUNCTION test]
SYSMESSAGE <STRSUB -3 0 Merhaba Ultima-Strike>

Bunu kullandığınızda size dönen değer Strike içindeki "ike" olacaktır. -3 değerinden aldırdığınızda sondan itibaren belirlediğiniz sayı içindeki karakteri verecektir.




STRTOLOWER



STRTOLOWER fonksiyonu girdiğiniz değerlerdeki karakterleri küçültmeye yarar. Örnek ile anlatırsak daha iyi anlayacağınızı sanıyorum.


[FUNCTION test]
SYSMESSAGE <STRTOLOWER meRHaBa uLTiMa STriKe>


Bu fonksiyonu kullandığımızda, girdiğimiz mesaj bize "merhaba ultima strike" şeklinde dönecektir. Bu şekilde kullanabileceğiniz gibi STRSUB yardımı ile belirlediğiniz aralıktaki karakterleri küçültmekte mümkün. Buna verilebilecek en büyük örnek olarak isim düzenleme sistemini göstermek mümkün.


[FUNCTION duzenle]
SRC.NAME = <STRTOUPPER <STRSUB 0 1 <SRC.NAME>>><STRTOLOWER <STRSUB 1 16 <SRC.NAME>>>

Burada yaptığımız şey 0'dan itibaren 1 karakter alıp (1. karakteri alıp) karakteri büyüttük. Daha sonra 1. karakterden itibaren 16 karakter alarak ismimizin kalanındaki tüm karakterleri ufalttık.



STRTOUPPER



Bunu da pek izah etmeye gerek yok sanırım. STRTOLOWER'ın tam tersi şeklinde işler. STRTOUPPER belirlenen kısımdaki karakterleri büyütmeye yarar. Üstte de verdiğimiz düzenleme fonksiyonunda göründüğü gibi ..


[FUNCTION test]
SYSMESSAGE <STRTOLOWER meRHaBa uLTiMa STriKe>

Bu fonksiyonu kullandığımızda bize dönen değer "MERHABA ULTIMA STRIKE" olacaktır.



STRTRIM



Bu komut üzerinden girdğimiz değerlerin başındaki ve sonundaki boşlukları siler. Örnek vermek gerekirse;


[FUNCTION test]
LOCAL.Text = "     TEST 11 22 33      "
SYSMESSAGE <LOCAL.Text>
SYSMESSAGE <STRTRIM <LOCAL.TEXT>>


Bunu kullanınca dönen değer;


"    TEST 11 22 33      "
"TEST 11 22 33"


Burada ilk dönen değer LOCAL.Text'te belirlediğimiz gibi baş ve sonundaki boşlukların olduğu şekildeki gibi yazacaktır. Ancak ikinci mesajda bize yazının başında ve sonundaki boşluklar göstermeyecektir.




STRMATCH



STRMATCH'de STRCMP, STRCMPI gibi string kontrol etmize yarayan bir fonksiyondur. Ancak şunu söylemek gerekir ki STRMATCH diğerlerinden daha kapsamlı ve daha detaylı bir kontrol sağlar.


[FUNCTION test]
IF STRMATCH(*lot*, <ARGS>)
  SYSMESSAGE Yazınızın içerisinde lot geçiyor.
ELSE
  SYSMESSAGE Yazınızın içerisinde lot geçmiyor.
ENDIF


Mesela bu komut içerisinde "Slothere" yazdık. Slothere içerisinde lot geçtiği için sorguyu doğru olarak döndürecektir. Ancak lot geçmeyen bir şey yazdığımızda dönen değer yanlış olacaktır. Bu komutta (*) karakteri dışında pek çok özel kontrol karakteri bulunmaktadır.

KomutAnlamı
*Herhangi bir sayı veya harf eşleşmesinde
?Eşleşen herhangi bir karakter ile
[\*]* yerine belirtilen karakter ile eşleşmede
[abcdef]Belirtilen karakterler ile eşleşmede
[!abc][br][^abc]Belirtilen herhangi bir karakter ile eşleşmediğinde
[A-Z][br][0-9]A-Z veya 0-9 arası karakterler ile eşleştiğinde


STRMATCH, STRCMP gibi büyük-küçük harf duyarlı değildir. STRMATCH kullanırken dikkat etmeniz gereken en önemli
özellik şudur. Mesela iki tane string var elimizde (string1 ve string2) bunları birbirleri ile karşılaştıracağız. Bu karşılaştırmada STRMATCH yerine STRCMP veya STRCMPI kullanmak daha performanslıdır. Çünkü STRMATCH genel olarak
belirtilen yazı içinde arama yaparken, STRCMP ve STRCMPI bütünü kontrol ettiğinden daha hızlı şekilde çalışacaktır.

(!) STRCMPI ve STRCMP içerisinde yukarıdaki tablodaki özel karakterler kullanılamaz, sadece bütünü kontol eder.




EXPLODE


EXPLODE komutu belirttiğiniz metinleri, belirttiğiniz ayraç(lar)dan itibaren virgülle ayırmanıza olanak sağlar.

kullanımı:
EXPLODE <ayraç(lar)>,<ayrılacakMetin>

örnek kullanım:
[function ayir]
goster <explode *,<args>>

[function goster]
serv.b toplam parca: <dargv>
for <dargv>
serv.b <local._for>. parca: <argv[<dlocal._for>]>
endfor

* ayraç bölümünde birden fazla belirtebilirsiniz. örnek olarak ben yukarıda * (yıldız) simgesinden itibaren ayırmasını belirttim. ancak siz bunu dilediğiniz gibi düzenleyebilirsiniz.

örnek:
<explode -+*!,<metin>

bu şekilde kullanıldığında - + ! * simgelerinden herhangi biri ile karşılaştığı an metni parçalayacaktır.

Değerlendirmeler

0 (0)

0 Kullanıcı

Üye Ol veya Giriş Yap

Bu içeriğe yorum atmak istiyorsanız hemen üye olun veya giriş yapın.

Discord ile Bağlan
Twitch ile Bağlan
Steam ile Bağlan
Google ile Bağlan
Yorumlar (3)
Slothere
Slothere 2010-07-24 17:38

döküman güncellendi.

Aldarson Avatar
Aldarson 2009-09-28 17:57

eline sağlık güzel döküman

Lucretius
Lucretius 2009-09-10 16:06

Eline sağlık.

Sadece kayıtlı kullanıcılar yeni yorum yapabilir.
İçindekiler
  • Temel Kullanım
  • STRARG
  • STREAT
  • STRCMP
  • STRCMPI
  • STRLEN
  • STRREVERSE
  • STRSUB
  • STRTOLOWER
  • STRTOUPPER
  • STRTRIM
  • STRMATCH
  • EXPLODE


Ultima-Strike Discord
Benzer Sayfalar
  • Vb Temel Komutlar.

    2006-06-03 20:45

  • Vb Temel Bilgiler

    2006-06-03 20:47

  • İlk Yardım Temel Bilgiler

    2006-07-15 03:08

  • Temel MySQL Komutları

    2009-02-03 22:26

  • WİNDOWS XP'deki Temel Bilgiler, Hatalar Ayarlar ve Çözümleri

    2006-05-03 19:41



  • Son Forumlar
  • Sayfalar
  • Nefrelius
    Alcor UO Reborn

    Sunucular 3 gün önce

  • System_Error
    Client Patlaması

    Ultima Online 5 gün önce

  • georgm15
    CS2 turnuvaları tartışmalı başladı.

    Counter-Strike 2 1 hafta önce

  • georgm15
    Counter-Strike 1.6 İndir - Tek Link Hızlı-

    Counter-Strike 1 hafta önce

  • Robellious
    Üyeliği 15 yıl ve üzerinde olanlar.

    Ultima Online 1 hafta önce

  • Cihangir algın
    Razor Kullanımı

    RunUo Scripting 3 hafta önce

  • Lucretius
    Rampage Pvp

    Sunucular 3 hafta önce

  • Lucretius
    Nephilim Pvp

    Sunucular 3 hafta önce

  • redi4817
    NightUO

    Sunucular 3 hafta önce

  • Cengiz MERDİT
    Sphere 56T Nightly Sürümü

    Ultima Online 1 ay önce

  • aygun
    Esgaroth UO

    Sunucular 1 ay önce

  • deonist
    Alysa Pvp ( Aktif ! )

    Sunucular 1 ay önce

  • mthN
    Nebula Uo gerçekleri

    Ultima Online 2 ay önce

  • buffa
    Kullanılması Gereken Rate Ayarları

    Counter-Strike 2 ay önce

  • Lucretius
    Aktif Satılık Server !

    Sunucular 2 ay önce

  • Skill seçimlerinizi planlamak artık çok daha kolay

    Ultima Online Karakter Yapılandırma Aracı Bölümü Açıldı!

    2024-10-31 22:47

  • Ultima Online topluluğu, ClassicUO'nun sadece web client olarak kullanılabileceğinin açıklanmasının ardından tepkili.

    Resmi UO, Oyuncuları İkiye Böldü: Web Client Yeterli mi?

    2024-10-14 17:45

  • Ultima Online, ClassicUO ile resmi işbirliği yapıyor! Performans iyileştirmeleri, geniş oyun penceresi ve daha fazlası geliyor.

    Ultima Online, ClassicUO ile Resmi İşbirliğine Gidiyor

    2024-09-26 14:21

  • Centred#

    2024-07-08 22:50

  • CentrED+ 7.9

    2024-07-08 22:34

  • Distance(uzaklık) Sorgusu Hakkında

    2024-06-19 22:05

  • UoFiddler

    2024-06-01 02:19

  • UoFiddler ile Map Kopyalama

    2024-05-31 21:17

Menü
  • ANASAYFA
  • FORUM
  • DOKÜMAN
  • İNDİR
  • İLETİŞİM
  • Bağlantılar
  • CS 1.6 indir
  • CS 1.6 Türkçe
  • CS 1.6 Bot
  • CS 1.6 CFG
  • CS 1.6 Rate Ayarları
  • UO Server
  • Ghost Mouse indir
  • FPS Nedir?
  • Ultima Online PVP Server
  • Makroman
  • UO Karakter Yapılandırma
    © 2004 - 2025 Ultima-Strike. Her hakkı saklıdır.