IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
10Beğeni(ler)
  • 2 Post By LeadeR
  • 1 Post By IrCbaStarD
  • 1 Post By Toprak

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 06 Temmuz 2006, 02:00   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
While döngüsü




;###############
; Written by MephisTo#
;###############

While'ın anlamı türkçe'de de sık sık kullandığımız "iken"dir. Mesela lamerler derler ya hep "sen daha doğmamışken ben irc'deydim" derler hep, veya günlük hayattan bir örnek "sen uyuyorken ne oldu biliyor musun dün?". Öyle düşünün.

Mantığına gelince:

Önce bir variable oluşturuyoruz. Fakat işin sırrı "set" değil "var" kullanmak. Ve bu variable verdiğimiz bir değerden büyük, küçük veya o değere eşit olduğu sürece while xxxxx { kısmından sonrası tekrarlanıyor.

Örneğin bir belgeden tek tek satırları okuyan bir addon yapalım:

;alias ile bir komut oluşturuyoruz. Ve bu komut "dosya" oluyor. /dosya
;yazdığımızda çalışacak.

alias dosya {

;Bir variable oluşturduk. Fakat bu %x değeri sadece bu kod için geçerli. Bu
;kodun son } işaretine geldiğinde %x değeri kaybolacaktır. Kaybolmamasını
;istiyorsanız set kullanacaksınız var yerine. Bu bizim ilk okuyacağımız satır, yani
;doğal olarak 1 olacak.

var %x = 1

;Şimdi bu 1 sayısı belirleyeceğimiz dosyadaki toplam satır sayısına eşit olana
;kadar bize dosyayı okutmasını istiyoruz. Yani 1 den başlayıp (30 tane satır var
;diyelim) 30. satıra gelene kadar bu işlemin sürekli başa dönmesini (loop)
;istiyoruz. 2. variable'ımız da dosyadaki toplam satır sayısı olacak bu nedenle.

var %t = $lines(dosya.txt)

;Buradaki %t değeri de dosya.txt dosyasındaki toplam satır değeri. Yani 30.
;Şimdi gelelim while bölümüne.

while %x <= %t {

;%x değeri %t değerinden k&#252;&#231;&#252;k veya eşit olduğu s&#252;rece, yani %x değeri 30
;olana kadar bu d&#246;ng&#252; s&#252;recek demektir. Şimdi bu d&#246;ng&#252; s&#252;resince olacakları
;yazıyoruz.

echo -a $read(dosya.txt,%x)

;Dosya.txt dosyasındaki %x değerindeki sayı numaralı satırı (yani şu an 1, ilk
;satır) echo komutu ile aktif pencereye yazdırıyoruz.

inc %x

;Yazdırdıktan sonra inc komutu ile %x in değerini 1 arttırarak satırı kapatıyoruz
;ve b&#246;ylece d&#246;ng&#252; tekrar while kısmına geliyor, ve %x numaralı satır tekrar
;echolanıyor.

}

;While d&#246;ng&#252;s&#252; s&#252;resince yapılacak şeyler bu kadar. While d&#246;ng&#252;s&#252;n&#252;
;kapatıyoruz.

}

;Şimdi de alias'ı kapattık.

Kodun tamamı şu şekilde oluyor:

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias dosya { var %x = 1 var %t = $lines(dosya.txt) while %x <= %t { echo -a $read(dosya.txt,%x) inc %x } }

Dipnot:

1. inc ile değer 1 sayı arttırılır, dec ile değer bir sayı d&#252;ş&#252;r&#252;l&#252;r.
2. $lines(asd.txt) identifier ı asd.txt dosyasındaki toplam satır sayısını verir.
3. echo kısmındaki -a aktif pencerede echolanacağını belirtir.
4. $read(asd.txt,1) identifier'ındaki 1 asd.txt doyasında okunmasını istediğiniz
satır numarasıdır.

Tamamiyle kendi bilgilerime dayanarak, tarafımdan yazılmıştır. Umarım işinize yarar.

Utku=>MephisTo 'ya teşekk&#252;rler

--------------------------------
--------------------------------


;#############
;Written by LeadeR#
;#############

While d&#246;ng&#252;s&#252; scripting'in temelini olusturan ve &#246;ğrenilmeden hi&#231;birşeyin yapılamayağını g&#246;sterten bir bilgidir..

While nedir ? While iken demektir..

nasıl (if = eğer) demek ise bununda g&#246;revi farklıdır ve &#231;ok b&#252;y&#252;k &#246;nem taşır..

While kullanımında &#246;nemli olan bir nokta ise set değil var kullanmaktır..

Oncelikle bir variable belirlenir bu variable belirlenen bir değer'den eş&#164;&#164; , b&#252;y&#252;k yada k&#252;c&#252;k olursa iken ( while ) 'den sonraki satırlar s&#252;rekli olarak işleve devam eder..

While kullanımı size en g&#252;zel ve en basit şekilde txt okutturarak g&#246;stertebilirim..

Bir tane oku.txt adında bir metin belgesi olusturalım ve icine bir kac yazı yazalım.. bu yazdıklarımızı aktif ekranda sıra ile okutturalım nasıl yaparız ?

Kod ;


alias oku {
var %i 1
while %i <= $lines(oku.txt) {
echo -a $read(oku.txt,%i)
inc %i
}
}


A&#231;ıklama ;

alias oku {
;Burada Komutumuzu olusturduk komutumuzun adı /oku
var %i 1
;Burada %i değerini 1 olarak g&#246;sterttik neden ? 1. satırdan itibaren okutturacağız..
while %i <= $lines(oku.txt) {
;Burada $lines(oku.txt) nedir ? $lines satır sayısını belirtir.. burada kullandığımız nedir ? while %i ( Yani setlediğimiz değer ) $lines(oku.txt) = oku.txt dosyasındaki satırların sayısından k&#252;c&#252;kse eş&#164;&#164; olana kadar kısacası %i değeri dosyadaki satır sayısına eş&#164;&#164; olana kadar
echo -a $read(oku.txt,%i)
;oku.txt 'deki b&#252;t&#252;n satırları aktif ekrana cıkart ve %i değeri ile eş&#164;&#164; olana kadar devam et
inc %i
; burada inc kullanarak s&#252;rekli rakamı 1 arttırtarak işlemi s&#252;rd&#252;r&#252;yoruz..
}
; acılan parantezi kapat
}
; kodu sonlandır

***************************

Daha kolay olması i&#231;in bir &#246;rnek daha vermek istiyorum..
Simdi bir kanalda b&#252;t&#252;n herkese mesaj g&#246;ndermek istiyorsunuz nasıl olacak ?

Kod ;


alias kmsg {
var %c 1
while %c <= $nick(#,0) {
msg $nick(#,%c) selam
inc %c
}
}


Acıklama ;

alias kmsg {
;Burada komutumuzu oluşturduk komut /kmsg
var %c 1
; burada değer verdik ( verdiğimiz değer = 1 )
while %c <= $nick(#,0) {

; burada $nick(#,0) demek = Kanaldaki nicklerin sayısı ) demektir.. %c değeri $nick(#,0) yani kanaldaki nick'lerin sayısına k&#252;c&#252;k veya eş-it olana kadar
msg $nick(#,%c) Selam
;Kanaldaki nicklere Selam mesajını g&#246;nder neden $nick(#,%c) burada %c kullandık , değeri kontrol ettirtmek ve işlemi s&#252;rd&#252;rtmek i&#231;in..
inc %c
;burada değeri yukardaki &#246;rnekteki gibi 1 artırtarak işlemi s&#252;rd&#252;rt&#252;yoruz yani %c = 1 'di ve biz 1. nick'ten itibaren msg'i arttırıyorduk kanaldaki herkese attırtmak i&#231;in inc ile bir arttırttık ve d&#246;ng&#252;y&#252; tekrarlamasını sağladık..
}
;parantez kapat
}

;kodu sonlandır

Bilgilendirme

Değer y&#252;kseltme : inc
Değer k&#252;c&#252;ltme : dec
Satır Sayısı : $lines


Bu arada %i , %c vs vs.. bunlar değişkendir , yalnızca kullanmıs olduğunuz alias'larda gecerlidir sabit değildir istediğiniz sekilde değer olusturabilirsiniz..
&#214;rn : var %s 1
gibi..


----------------------------------------------------------------------

d&#252;zenlenmiştir , kolay gelsin iyi &#231;alışmalar


Konu LeadeR tarafından (10 Temmuz 2006 Saat 22:11 ) değiştirilmiştir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 25 Ekim 2006, 09:47   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Yanıt: While döngüsü




inc değeri bir arttırıyor dediniz yani inc olmasaydı sadece 1. nicke mi msg gidecekti? anladım sanırım ama emin olmak için soruyorum.

 
Alıntı ile Cevapla

Alt 25 Ekim 2006, 19:45   #3
Utku
Guest
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Yüzdesi:(%)
Yanıt: While döngüsü




CraCX Nickli Üyeden Alıntı
inc değeri bir arttırıyor dediniz yani inc olmasaydı sadece 1. nicke mi msg gidecekti? anladım sanırım ama emin olmak i&#231;in soruyorum.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias kmsg { var %c 1 while %c <= $nick(#,0) { msg $nick(#,%c) selam inc %c } }

Dediğin gibi sadece 1. nicke mesaj atıcaktı. Ayrıca %c değeri inc komutu ile hi&#231; arttırılmadığı i&#231;in kanaldaki nick sayısını ge&#231;emeyecek, b&#246;ylece while d&#246;ng&#252;s&#252; hi&#231; bitmeyecek, mIRC donacaktı.

 
Alıntı ile Cevapla

Alt 23 Mayıs 2007, 04:42   #4
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Yanıt: While döngüsü




% , <= , var BunLar Ne işe Yarar? :S

 
Alıntı ile Cevapla

Alt 23 Mayıs 2007, 13:52   #5
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Yanıt: While döngüsü




DontpaniC Nickli Üyeden Alıntı
% , <= , var BunLar Ne işe Yarar? :S

Kardeş ya dalga ge&#231;iyosun yada hi&#231; kod yazmadın neyse a&#231;ıklayayım
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

% veriables degerlerinin başında kullanılır
x <= y x degeri y degerinden k&#252;&#231;&#252;k veya eşitse demektir
var sadece yazıldıgı kod i&#231;in ge&#231;erli veriablestir.kod bittiginde artık &#231;alışmayacaktır.kaybolmasını istemiyorsan set kullanmalısın.

 
Alıntı ile Cevapla

Alt 03 Mart 2011, 10:36   #6
Çevrimdışı
Swq
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: While döngüsü




While dongusune sleep(3) gibi bir bekleme suresi koymak istiyorum... IRC'de bu mumkun mu? Yani dongunun her tekrarinda sure koymak istiyorum nasil yapabilirim?

 
Alıntı ile Cevapla

Alt 14 Nisan 2011, 04:37   #7
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: While döngüsü




çok açık çok anlaşılır elinize sağlık

----------

Swq Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
While dongusune sleep(3) gibi bir bekleme suresi koymak istiyorum... IRC'de bu mumkun mu? Yani dongunun her tekrarinda sure koymak istiyorum nasil yapabilirim?

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias avdet { var %a = 1 while $chan(%a) { .timer 1 %a echo 4 -at $v1 inc %a } }

1'er saniye aralıklarla çalıştırır while'yi ama mesela diyelim ki 2, 4, 6, 8, ... n'e kadar işlem alacaksın yani ikinin katları ile o zaman timer'de %a yerine $calc(%a * 2) yazarsan elde edersin istediğin şeyi.

 
Alıntı ile Cevapla

Alt 03 Mayıs 2015, 10:47   #8
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: While döngüsü




@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ne cok calisiyorsun sen böle. En sonunda continueda anlattin bakalim daha ne var
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

 
Alıntı ile Cevapla

Alt 03 Mayıs 2015, 11:05   #9
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (1)
IF Ticaret Yüzdesi:(%)
Cevap: While döngüsü




Adam senin gibi yatmıyor kanka
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

 
Alıntı ile Cevapla

Cevapla

Etiketler
dongusu, döngüsü, mirc, mirc download, mirc indir, while


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
While Döngüsü BrainDamaged C# 1 23 Şubat 2015 22:40
C# For Döngüsü Deep C# 0 28 Eylül 2014 00:36
C# While Döngüsü aSpeNDos C# 0 08 Mart 2013 13:13
ASP DO WHILE Döngüsü Zen ASP/ASP.NET 0 03 Aralık 2012 13:10
ASP FOR NEXT Döngüsü Zen ASP/ASP.NET 1 08 Kasım 2012 09:05