AMS etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
AMS etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

4 Şubat 2015 Çarşamba

Youtube Music Box ( Play & Download Mp3)

Youtube Music Box

Güncelleme: Youtube API değiştirdiği için artık çalışmamaktadır... sadece kod bilgisi amaçlı .apz dosyasını kullanabilirsiniz.



Youtube Music Box, Youtube dan video arayıp izleyebileceğiniz, kendinize özel çalma listeleri oluşturabileceğiniz bir programdır. Program anlık olarak arama yapıp görüntüleme ve çalma listelerinden seçip görüntüleme şeklinde iki pencereden oluşmakta... Her iki durumda da seçili olan videoyu mp3 olarak indirme imkanı vardır. Mp3 formatına çeviri için programa koyduğum codecler nedeniyle boyutu biraz büyük oldu...Aslında normal bir AMS projesi boyutunda çalışma... Codec kullanmadan .m4a formatında da müzik indirilebiliyordu ama sorunsuz mp3 formatı olsun istedim...

Arama geçmişini tutma ve çalma listelerine yazma konusunda sıkıntı çıkmaması için programı yönetici olarak çalışmaya ayarladım... Bu ayarı değiştirirseniz, bahsettiğim kısımlar devre dışı kalabilir...

Diğer görseller:
http://i.imgur.com/YPnr0Op.jpg
http://i.imgur.com/VpHk57K.jpg
http://i.imgur.com/7QAIiHz.png
http://i.imgur.com/m9IbipM.png
http://i.imgur.com/LPnO05Z.jpg
http://i.imgur.com/2eVmAXE.jpg
http://i.imgur.com/rPEJyOO.png

  1. https://yadi.sk/d/SisU1BnJeTr3V


Bu örnek ile aşağıdaki konularda bilgi sahibi olabilirsiniz...

- Inputa veri girerken geçmişi hatırlayıp veriyi tamamlama
- Yotube'dan video arayıp JSON verisi şeklinde indirme... ( normalde xml olarak indirme imkanı var... Json ile kodlar daha anlaşılır )
- JSON verisinde hangi kodların ne işe yaradığı
- Listboxa aktarılan başlıkları playerda çalma
- youtube-dl.exe ile youtube videolarının indirilmesi ve mp3'e çevrilmesi
- Combobox'tan listbox'a veri aktarımı
- Buton üzerinde menü oluşturma
- Listboxtaki veriyi yeniden adlandırma...

Kaynak kodların bulunduğu apz dosyası..
https://yadi.sk/d/ChG-Twn1eTy2i
Çalışmada kullanılan Pluginler
https://yadi.sk/d/QWy4gOY5exNMT

22 Kasım 2014 Cumartesi

Get Lucky - Autoplay Media Studio Uygulaması

Get Lucky



Bir facebook sayfasında çekilişle hediye dağıtma fikrinden yola çıkarak hazırlanmış, listboxa girilen isimlerden rastgele kişiler seçen bir çekiliş uygulaması...

Rastgele seçimle ilgili temel kodlar alıntı olup üzerine ek yapılmıştır....


Uygulama
https://yadi.sk/d/zFXjNR5_crkyt

.apz dosyası

https://yadi.sk/d/Hzm5yFbweVWmK

26 Ekim 2014 Pazar

MultiCopy



MultiCopy 'nin hazırlanış amacı; Netcad'de tüm adalara ait koordine özet ve alan raporlarının tek rapor dosyasında hazırlanıp word ile gerekli ayarlar yapıldıktan sonra bunu ada sayısınca kopyalatmaktır...

Uygulama Dosyası
https://yadi.sk/d/2VaOyviecJE7J

.apz Dosyası
https://yadi.sk/d/h0jKQVBccJE7E 

21 Nisan 2014 Pazartesi

Mdb To Text AMS Örneği

Mdb dosyası içindeki verileri cümle içinde kullanıp hazır kalıp düz metinler verebilen bir örnek çalışmadır... paket içerisinde örnek bir mdb dosyası vardır...







APZ - http://yadi.sk/d/O4AKmP6fNkYum

EXE - http://yadi.sk/d/VEEjw60tNkYuf

8 Nisan 2014 Salı

AMS ListBox AIO Örneği


Listbox ta görüntülenen katılımsız programların sırayla kurulmasını sağlayan Autoplay Media Studio ile hazırlanmış bir örnek...

.apz dosyası
http://yadi.sk/d/C_jcHq9ZM2sJY

8 Nisan 2013 Pazartesi

Auis-2 ( Otomatik Katılımsız Kurulum Sistemi )

Auis-2 ( Otomatik Katılımsız Kurulum Sistemi )

 

AUIS 2 Özellikleri

- CD anadizininde ki "Programlar" klasörüne koyulan katılımsız programları otomatik olarak tanır ve listeler.
- AUIS 2 açıldıktan itibaren 20 sn içinde seçim yapılmaz ise otomatik olarak kapanır ve kuruluma devam eder.
- Programlarınız windows kurulum aşamasında kuracaksanız " Seçilenleri kur ve programı kapat" seçeneğini kullanmanız tavsiye edilir.
- AUIS 2 yi isterseniz windows kurulumu bittikten sonra da kullanbilirsiniz. Kurulum seçeneklerindeki kapat ve yeniden başlat seçenekleri size kalmış istediğiniz şekilde kurabilirsiniz.
- Sistemi USB den kurmak isteyenler için AUIS 2 de manuel olarak Program ekle/çıkar menüsü bulunmaktadır.
- CD anadizinde ki "Araçlar" klasörüne windows ortamında kullanabileceğiniz , reg ayarları, bat/cmd dosyaları, portable programlar... vb. ihtiyaç duyabileceğiniz dosyaları koyabilirsiniz. Artık ne amaçla kullanmak isterseniz....

.apz dosyası
http://yadi.sk/d/JAyJuQDJ2SzwL
portable
http://yadi.sk/d/dp_oeykx2_ljp

1 Aralık 2012 Cumartesi

Autoplay Media Studio Eğitimi 2

Döngüler (gelişmiş anlatım)

Döngüler kısaca birden çok komutu tekrar etmek için veya tablodan veriyi çekip kullanmak için kullanılır ve işimizi çok kolaylaştırır.

for döngüsü

Bu döngü belirttiğimiz bir sayı adedince yada eşleştirdiğimiz tablodaki veri sayısınca komutları tekrar eder.

for i =1,100 do

end
for -- döngü tipi
i -- index
1 -- başlangıç
100 -- bitiş
do -- yap emri

Basit bir for döngüsü bu şekildedir. Başlangıç ve bitiş adedi arasındaki sayı kadar içerdeki komutları tekrar eder. 1,100,5 yaparsak 5 sayısı adımı belirtir. Yani komut tekrarını başlangıç ve bitiş adedince ve 5 er 5 er atlayarak yapar. Şimdi anlamanız için açıklayıcı bir örnek verelim.

ListBox’a veri ekleme (örnek):

for i=1,100 do
ListBox.AddItem(“ListBox1”, “Eklenen veri: “ .. i)
end

Bu kod Listbox’a Eklenen veri: 1, Eklenen veri: 2 şeklinde 1’den 100’e kadar satır ekleyecektir.

nSayi = 0;
for i=1,100 do
nSayi=nSayi+1
end
Dialog.Message("Sayı:", nSayi)

Bu örnek ise nSayi değişkenine 100 kere +1 yapacak ve sonuç olarak 100 sayısını verecektir.

Yukardaki örnekler komut tekrarları içindi. Şimdi bir tablodan döngü ile nasıl veri çekeceğimizi görelim. Öncelikle bize bir tablo lazım, tablomuzu oluşturup gelen verileri Listbox’a ekleyelim. Bunun için en güzel örnek sanırım File.Find() fonksiyonu ile olur.

Quote
for i,v in pairs(tablo) do

end

for -- döngü tipi
i -- indeks
v - gelen veri
pairs -- eşleştir
tablo -- tablo adı
do -- yap emri

Örnek:

tAra = File.Find("C:\\Windows", "*.exe", false, false, nil, nil)
for i,v in pairs(tAra) do
ListBox.AddItem("ListBox3", v, "")
End

Bu kodlar C:\Windows klasorunde exe uzantılı dosyaları bulma sırasıyla Listbox’a ekleyecektir. Burada dikkat etmemiz gereken i ve v argümanı. i argümanı döngünün o andaki sıra nosunu, v argümanı ise o sıra nonun karşısındaki veriyi ifade eder. Örneğin yukardaki kodda tAra = C:\Windows dediğimizde bulduğu sonuçları şu şekilde listeler:
1 C:\Windows\ALCMTR.EXE
2 C:\Windows\ALCWZRD.EXE
3 C:\Windows\explorer.exe
4 C:\Windows\hh.exe
5 C:\Windows\MicCal.exe
6 C:\Windows\NOTEPAD.EXE
7 C:\Windows\patchx86.exe
8 C:\Windows\regedit.exe
9 C:\Windows\RtaUpd.exe
0 C:\Windows\RTHDCPL.EXE
11 C:\Windows\RtkAudioService.exe
12 C:\Windows\RTLCPL.EXE
13 C:\Windows\RtlUpd.exe
14 C:\Windows\SkyTel.exe
15 C:\Windows\SOUNDMAN.EXE
16 C:\Windows\TASKMAN.EXE
17 C:\Windows\twunk_16.exe
18 C:\Windows\twunk_32.exe
19 C:\Windows\vncutil.exe
20 C:\Windows\winhelp.exe
21 C:\Windows\winhlp32.exe

En baştan başlayalım:

C:\Windows\ALCMTR.EXE
Sırasında;

Quote
i = 1 olur
v = C:\Windows\ALCMTR.EXE olur.

C:\Windows\ALCWZRD.EXE
Sırasında;

Quote
i = 2 olur
v = C:\Windows\ALCWZRD.EXE olur.

bu şekilde devam eder. yani i her v için sıra numarasını ifade eder.

yukarıda verdiğimiz

Quote
ListBox.AddItem("ListBox3", v, "")

kodda geçen v ile i sırasındaki verileri tek tek listboxa ekler. Sadece Dosya isimlerini eklemek isteseydik kodumuz şu şekilde olmalıydı:

tAra = File.Find("C:\\Windows", "*.exe", false, false, nil, nil)
for i,v in pairs(tAra) do
tAyir = String.SplitPath(v)
ListBox.AddItem("ListBox3", tAyir.Filename, "")
End

** String.SplitPath() fonksiyonu bir dosya yolunu Sürücü, Klasör, Dosya Adı, Dosya Uzantısı şeklinde ayrılmasını sağlar.

for döngüsünü durdurmak

Bazı durumlarda for döngüsünü bir koşul ile durdurmak isteriz. Yukardaki örnekten yola çıkarak devam edelim.

tAra = File.Find("C:\\Windows", "*.exe", false, false, nil, nil)
for i,v in pairs(tAra) do
ListBox.AddItem("ListBox3", v, "")
End

burda C:\Windows klasöründeki tüm dosyaları bulup listboxa ekletiyoruz. Ama diyelim ki C:\Windows\SOUNDMAN.EXE dosyasını bulduğumuz zaman ekletmeyi kesmek istiyoruz. bunun için break kullanmalıyız şöyleki:

tAra = File.Find("C:\\Windows", "*.exe", false, false, nil, nil)
for i,v in pairs(tAra) do
ListBox.AddItem("ListBox3", v, "")
  if v == "C:\Windows\SOUNDMAN.EXE" then
  break;
  end
End

yani döngüdeki v, C:\Windows\SOUNDMAN.EXE verisine eşitse döngüyü durduk dedik. break argümanı kısaca bu şekilde kullanılır.


while döngüsü

bu döngü belli koşullar altında döngünün gerçekleşmesini sağlar.

Örnek2:

a = 1; -- a değişkenine 1 sayısını atadık. yani a artık bir number (sayı)
while a < 10 do -- a değeri 10'dan küçük olduğu sürece döngüye devam et dedik
    a = a + 1; -- a değerini+1 ekleyerek tekrarla (yani a zaten 1 idi. +1 eklersek 2 olacak, 3 olacak ve böyle devam edecek)
end -- bitir.

bu örnek a değeri 10'dan büyük olduğu anda duracaktır. Çünkü koşulumuz o şekildeydi.

Örnek2:

count = 1; -- count değerine 1 sayısını ata
while count < 100 do -- count değeri 100 sayısından küçük olduğu sürece döngüye devam et
    count = count + 1; -- count değerine +1 ekle
    if count == 50 then -- eğer count 50 sayısına eşit olursa
        break; -- döngüyü durdur
    end 
end

Bu örnek ile 1. örneğin arasındaki fark, 2. bir koşul ile döngüyü durdurmamız.

** while döngüsünü for döngüsünde olduğu gibi tablolardada kullanabiliriz. Özellikle SQLite3 gibi veritabanı işlemlerinde veri çekmek için çokça kullanmamız gerekir.

Repeat

Bu döngü adındanda belli olduğu gibi istediğimiz koşullar gerçekleşene kadar bazı işlemleri tekrar ettirmek için kullanırız.

i = 1; -- i değişkenine 1 sayısını ata
repeat -- tekrarla
     i = i + 1; -- i değişkenine +1 ekle
until i > 10 -- i değişkeni 10 sayısından büyük olana kadar devam et.
 
 
 
 
Anlatım KintaRo'ya aittir. 

Autoplay Media Studio Eğitimi

DEĞİŞKENLER (Variable)

* Değişkenler için programlamada yapı taşları diyebiliriz. Değişkenleri içlerine veri depolamak, daha sonra depoladığımız verileri istersek değiştirmek, başka değişken veya değerlerle birleştirmek, ekrana yazdırmak, hesaplama yapmak gibi bir çok işlemde kullanabiliriz.

Örnek:


isim = "ahmet"


Burda isim değişkenine ahmet değerini depoladık. Şimdi bunu istediğimiz yerde kullanabiliriz.

Dialog.Message("Adamın ismi:", isim)

Bu kod ekrana ahmet değerini yazdıracaktır. İstersek

Dialog.Message("Adamın ismi:", "ahmet")


kodunuda kullanabilirdik, sonuç değişmezdi fakat, programlamada ilerledikçe çok uzun değerler, birleştirilmesi gereken değerler gibi olaylarla çalışmaya başladığınız zaman değişken olayının işinizi çok kolaylaştıracağını göreceksiniz. Örneğin 10 sayfalık bir projede her sayfada bir INI dosyasından veri alacaksınız. INI dosyasıda diyelimki C:\Documents and Settings\selami\desktop\programlar\adresler.ini adresinde. Burdan veri çekmek için her sayfadaki kodu şu şekilde kullanmanız gerekiyor:

INIFile.GetValue("C:\\Documents and Settings\\selami\\desktop\\programlar\\adresler.ini", "Ev", "adres1")


fakat her kodda bu kadar uzun yol kullanmak yerine şu şekilde yapsaydık daha derli toplu bir görüntü oluşurdu:

sDosyaYolu = "C:\\Documents and Settings\\selami\\desktop\\programlar\\adresler.ini";

INIFile.GetValue(sDosyaYolu, "Ev", "adres1")


Gördüğünüz gibi sadece değişkenimizi yazdık ve veriyi çektik.

* Değişkendeki veriyi, kendine ekleme yaparakda değiştirebiliriz.

Örnek:

sayi = 10
sayi = sayi + 10


Bu şekilde yaptigimiz zaman ilk satirda sayi degiskenine 10 sayısını depolarız ve ikinci satırda sayi degiskenini 10 ile toplayip depoladigi veriyi degistirebiliriz.

*** Global Functionsda örneğin isim = "selami" değişkenini tanımladıktan sonra projenin başka yerinde isim değişkenine başka bir veri depolarsak son depoladığımız veri geçerli olmaktadır.


a = 10;
b = a;
Dialog.Message("değer", B);


Bu örnektede b değişkenine a değişkenini depoluyoruz, a değişkenine daha önce 10 değerini depoladığımız için b değişkenini ekrana yazdırdığımızda karşımıza 10 değeri gelecektir.


*** Değişkenler sayı ile başlayamaz, operatorler isimleri kullanilamaz, boşluk karakteri kullanılamaz ve değişkenlerde türkçe karakter kullanılamaz!.

Hatalı değişkenlere örnekler:

1
1data
%MyValue%
$strData
for
local
_FirstName+LastName_
User Name





NUMARALAR (number)

Numaralar Numerik değerlerdir. AMS de kullanılabilecek geçerli numara örnekleri şunlardır:

4             4.            .4           0.4            4.57e-3             0.3e12





DEĞERLER (string)

Değerlerden sıkça bahsettik, şimdi ne olduğuna bakalım. Değerler, birleşik karakterlerdir. Örneğin “Joe2” 4 karakterli bir değerdir. Büyük J ile başlar, 2 sayısı ile biter. Karakter sınırı yoktur, bir kelimeden, bir cümleden yada bir kitabı tamamen içerebilir.

Değerler her zaman "" karakterleri içinde gösterilir:

isim = "selami"
sehir = "istanbul"
adres = "12 nolu sk. 78. cadde"



Eğer değerlerin için "" tırnak işareti kullanmak istiyorsanız kullanacağınız tırnak işaretlerinden önce \ karakterini kullanmanız gerekir:

cumle = "Orda bir köy var uzakta, Köyün ismi \"abacılar köyü\" dür."


Bu şekilde kullanılmazsa syntax hatası verir.

Değerlerin içinde satırlar kullanmak isterseniz \n ibaresini kullanmanız gerekir:

Lines = "Line one.\nLine two.\nLine three";
Dialog.Message("Here is the String", Lines);


http://www.indigorose.com/webhelp/ams/Graphics/scripting_guide/ams60_scripting_three_lines_dialog.png

Dosya yolu belirtirken \ karakterinden iki adet kullanmanız gerekir.

dosya_yolu = "C:\\Program Files\\MSN\\msn.exe"


Eğer değer sadece sayı içeriyorsa ams bunu direk sayıya dönüştürecektir.

a = "10" + 1 -- sonuç 11 olacaktır.


Ama değerin kendi içinde hesaplama yaptırılamaz.

a = "10+1" -- ekrana yazdırıldığında 10+1 olarak görünecektir.

a = 10+1 -- hesaplamada doğru yol budur.





FONKSİYONLAR (function)

Büyük projelerinizde kod karmaşından kurtulmak için yardımınıza koşacak aracımız fonksiyonlardır. Hazırlayacağınız fonksiyon kodlarıyla, aynı kodları tekrar tekrar kullanmaktan kurtursunuz. Kullanımı şu şekildedir:

function fonksiyon_adı (argümanlar)
     fonksiyon kodları
     return dönüş_değeri;
end


Örnek:

function hosgeldin()
  Dialog.Message("merhaba","Hoşgeldiniz!");
end


Programın giriş bölümüne

hosgeldin()

kodunu yazdığınız zaman Dialog penceresini açıp hoşgeldiniz diyecektir. Tabi bu basit bir örnek. Sınırı hayalgücünüzle doğru orantılıdır...




TABLOLAR (table)

Tablolar indekslenmiş değerleri liste halinde tek bir isimde depolamanın en güçlü ve kolay yoludur.

Örnek:

isimler = {"Ahmet", "Selami", "Mustafa"}

Dialog.Message("Tablodaki ikinci kişi:", isimler[2])


bu kod ekrana selami ismini yazdıracaktır. çünkü isimler[2] dediğimizde isimler tablosunda 2. sıradaki değeri alacaktır.

İkinci tablolama şekli:

tSarkici = {}
tSarkici.isim = "şebnem"
tSarkici.soyisim = "ferah"
tSarkici.yas = "35"

Dialog.Message(tSarkici.isim, tSarkici.soyisim)


bu kod şebnem ve ferah değerlerini yazdıracaktır.

Tablolamada şöyle bir yazım tarzı daha vardır;

tVeriler = {Meyve="Elma",Renk="Kırmızı"}
Dialog.Message("", tVeriler.Meyve);


AMS8'de pairs espriside bu tablolardaki Meyve ve Renk yazılarını göstermemizi sağlıyor..

pairs argümanını şu şekildede kullanabiliriz:

tMeyveler = {"Elma", "Armut", "Portakal"}

for i in pairs(tMeyveler) do
Dialog.Message("Meyveler:", tMeyveler[i])
end


Bu kodu çalıştırdığımız zaman tMeyveler tablosundaki öğeleri sırayla ekrana yazdıracaktır. i argümanının esprisi daha öncede belirttiğimiz gibi tablonun içindeki öğelerin indeks numaralarıdır.




KONTROL YAPILARI (KOŞULLANDIRMA)

Kodlarınıza koşullar ve kontrol yapıları ile yön verebilirsiniz.

Kontrol Yapı operatorleri if, while, repeat ve for'dur.

- if

eğer anlamına gelen if ile koşullandırma yapıyoruz. Yapısı basitçe şu şekildedir:

if şartlandırma then
       koşul gerçekleşirse çalışacak kodlar
end



Örnek:

x = 50;
if x > 10 then -- eğer x 10 sayısından büyükse
     Dialog.Message("result", "x,  10'dan büyüktür"); -- mesajı görüntüle.
end


else operatoru ile koşullandırmamıza şartlar koşabiliriz:

x = 50;
if x > 10 then -- eğer x 10 sayısından büyükse
    Dialog.Message("result", "x,  10'dan büyüktür"); -- mesajı görüntüle.
else -- değilse
    Dialog.Message("result", "x,  10'dan küçüktür"); -- mesajı görüntüle.
end


elseif kullanarak koşullandırmamızdaki doğru sonuca ulaşınca çalıştırılacak kodları belirleyebiliriz:

x = 5;
if x == 10 then
    Dialog.Message("", "x eşittir 10");
elseif x == 11 then
     Dialog.Message("", "x eşittir 11");
elseif x == 12 then
     Dialog.Message("", "x eşittir 12");
else
     Dialog.Message("", "x eşit değildir 10/11/12  ");
end


eğer x ordaki hiç bir sayıya eşit olmadığı için else den sonraki eşit değildir mesajı görüntülenecektir. fakat x = 10 olsaydı ilk mesaj, 11 olsaydı 2. mesaj, 12 olsaydı 2. mesaj görüntülenecekti.




- While

While döngüsü, koyduğumuz şart yerine gelene kadar kodu tekrarlayacaktır. Basit yapı şu şekildedir:

while şartlandırma do
     çalıştılacak kodlar
end


Örnek:

a = 1;
while a < 10 do
    a = a + 1;
end


Bu kodda a = a + 1 kodu 9 defa çalıştırılacaktır. Çünkü şartımızda a < 10 (a 10'dan küçükse) dedik ve a = 1, yani 10 sayısına ulaşmak için 9 kere 1 ile toplamamız gerekiyor a = a + 1 dediğimizde a+1+1+1+1+1+1+1+1 şeklinde çalışacak ve sayı 10'a ulaşında duracaktır.


while döngüsü esnasında yine şartlandırma yaparak break argümanı ile döngüyü durdurmak mümkün.

count = 1;
while count < 100 do -- count 100 den küçükse yap
    count = count + 1; -- count'a 1 ekle
    if count == 50 then -- eğer count 50'ye eşitse
        break; -- döngüyü durdur
    end
end


count 50 sayısına ulaştığında break argümanı döngüyü durduracaktır.




- For

for ifadesi kısaca kod tekrarı yaparken kullanılır. Basitçe yapısı şu şekildedir:

for değişken = başlama, durma, adım do
     çalışacak kodlar
end



Örnek:

for i = 1,10,1 do
     Dialog.Message("Number", i);
end


Burda i harfi döngüde dönen sayıyı belirtir. i=1,10,1 şu demektir;

i = döngü sayısı
1 = başlangıç
10 = bitiş
1 = adım


yani 1 den 10 a kadar 1'er 1'er say ve i harfinde depola

daha sonrada Dialog.Message("Number", i); yazarak dialogda sayıları gösterir.

Bitiş sayısı kaç ise o sayıya kadar döngü tekrarlanır.




- repeat:

Repeat döngüsü for döngüsüne çok benzerlik göstermektedir. Verilen koşulu until şartlandırmasına kadar tekrar eder.

Örnek:

x = 50;

repeat

x = x + 1; - altta x >= 100 diye koşul koyduk bu koşul sağlanana kadar x'in üzerine bir ekleyecek..

until

x >= 100 - koşulumuz x değişkeni 100e eşit olursa veya büyük olursa bu koşul sağlanınca döngü duracak


*** break argümanı for döngüsünde, repeat döngüsünde ve while döngüsünde döngüyü durdurmak için kullanılır.




OPERATORLER

- Aritmetik Operatorler:

Aritmetik Operatorler Matematiksel işlemlerde kullanılır. Şu operatorler desteklenmektedir:

+ (toplama)
- (çıkarma)
* (çarpma)
/ (bölme)
% (yüzde)
^ (üssü)
unary - (olumsuzluk)


Örnek:

a = 5 + 2; -- 5+2 yi topla ve a değişkeninde depola
b = a * 100; -- a değişkeninde depolanan sayıyı 100 ile çarp
Dialog.Message("Sonuç:", B) -- b'yi yazdır


Denediğiniz zaman 700 sonucu çıktığını göreceksiniz.




- İlişkisel Operatorler:

İlişkisel operatorler iki değeri karşılaştırmak için kullanılır. Şu operatorler desteklenmektedir:

> (Büyükse)
< (Küçükse)
<= (küçükse yada eşitse)
>= (büyükse yada eşitse)
~= (eşit değilse)
== (eşitse)


Örnek:

a = 5
b = 1

if a > b then -- eğer a, b'den büyükse
Dialog.Message("Sonuç:", "a, b'den büyüktür.")
end


Kod bu şekilde çalıştırıldığında "a, b'den büyüktür" şeklinde bir dialog penceresi çıkacaktır. a ve b deki sayılar yer değiştirildiğinde hiç bir yanıt vermeyecektir. Kodlamada büyük-küçük harf duyarlılığına dikkat ediniz. Şöyleki;

"ahmet" == "ahmet" -- eşittir
"Ahmet" == "ahmet" -- eşit değildir.





- Yerel Operatorler:

Yerel operatorler Boolean işlemlerde kullanılır. (Boolean'in tam bir türkçe karşılığı yok, true veya false alan değerler diyoruz kısaca. Yani bu işlemlerin sonucunda geri dönen değer true yada false dır.). Desteklenen operatorler şunlardır:

and (and içeren değerler aynı dönüşü vermelidir)
or (or içeren değerlerden en az biri istenen dönüşü vermelidir)
not (değerin zıttını verir)


*** Burdan nil operatorunede değinmek isterim. nil demek boş, geçersiz demektir. yani a = nil derseniz a'nın karşılığında birşey dönmez. Global Functions'da boş bir değer tanımlamak ve daha sonradan bunun içine farklı veriler depolamak için bu tekniği kullanabilirsiniz. Bu bilgi kenarda kalsın.



a = true;
b = false;
c = a and b; -- c değişkenine false değeri depolanır. a = true olsada b = false'dır çünkü.
d = a and nil; -- d değişkenine false depolanır.
e = not b; -- b = false olduğu için not operatörüde zıttını vereceği için e değişkenine true depolanır.


Dialog.Message("Sonuç:", e) derseniz sonucu göreceksiniz.

Örnek:

a = true;
b = true;

if a and b then -- eğer a ve b true ise
Dialog.Message("Sonuç:", "tüm değerler: true")
else -- değilse
Dialog.Message("Sonuç:", "bazı değerler false içeriyor!")
end


Yukarıdaki örnekte tüm değerler true mesajını alırsınız. Eğer a yada b değerlerinden birini false yaparsanız ikinci mesajı alırsınız. Eğer a and b yerine a or b derseniz değerlerden herhangi birinin true olması, tüm değerler true mesajını almanız için yeterlidir.




- Uzunluk Operatoru:

Bu operator yani #, değerin karakter uzunluğunu alır ve yazdırır.

Örnek:

nLength = #"Hey"; -- nLength değişkenine Hey kelimesinin karakterlerini sayar ve depolar (Yani 3)





NOTLAR:

Her zaman kullandığımız fakat ayrıntılarına pek değinmediğimiz şeylerden burda bahsedelim...




- Birleştirme:

Birleştirmeden kastımız; iki değerin, iki değişkenin yada iki komutun birleştirilmesidir. Bu argümanları birleştirmek için .. kullanılır. Örneğin;

x = "ali"
y = "veli"

Dialog.Message("İsim:" x .. y)

dediğimiz zaman ekrana aliveli şeklinde yazdıracaktır. eğer x .. " " .. y deseydik ekrana ali veli şeklinde yazdıracaktır. Yani iki değerin arasında boşluk koyduk.