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

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Parça Kodlar (https://www.ircforumlari.net/mirc-parca-kodlar/)
-   -   Text sayı sıralama (https://www.ircforumlari.net/mirc-parca-kodlar/982740-text-sayi-siralama.html)

Forbidden 01 Temmuz 2022 16:11

-
Merhabalar kodun amacı Text belgesindeki rakamlari baz alarak büyükten kücüge ya da küçükten büyüge belirli miktarda siralama yapar.
Bunu yaparken $gettok kullanir, enbuyuk veya enkucuk ozellikleri mevcuttur, ek olarak komut secenegi vardir.
Ornek.txt Text Belgesinin iç görünümü
Kod:

yogurt 10
ekmek 4
kurufasulye 20
mercimek 13
sabun 5
jilet 3
kahve 4
dogalgaz 49
elektrik 56
makarna 5

Kod:

//noop $sayisirala(ornek.txt,enbuyuk,2,32,echo -a).5
Bu komutta;
dosya ismi olarak ornek.txt belirttik.
Buyukten kucuge mi yoksa kucukten buyuge mi siralayacagiz ?
buyukten kucuge siralarsak - enbuyuk
kucukten buyuge siralarsak - enkucuk
2 - burada token degeridir, rakamlar 2.token(kelime) oldugu icin 2 kullandik.
32 - token(kelime) ayracidir.Burada ayrac bosluk olarak kullanilmistir ve boslugun ascii degeri 32'dir.
echo -a ise tamam secenektir, onun yerine msg #herhangibirkanal olarak da yazabilirdik.
Ve en son 5 degeri ise, bizim siralama yapabilecegimiz miktari veriyor.Yani bize buyukten kucuge en buyuk 5 adet satir verecek.


Kod:

alias sayisirala {
  unset %enbuyuk %enkucuk %dok %zsonb %ysonk
  if !$1 { echo $color(info) Text Belgesini Yaziniz. Orn: $!sayisirala(ornek.txt,enbuyuk,2,32,msg #Forbidden).10 | return }
  if !$isfile($1) { echo $color(info) dosya bulunamadi | return }
  if $prop !isnum { echo $color(info) En buyuk kactane rakam siralama yapacagini belirtin. Orn: $!sayisirala(ornek.txt,enbuyuk,2,32,msg #Forbidden).10 | return }
  if $prop > $lines($1) { echo $color(info) Uzgunum, dosyanizda $v2 satir var | return }
  if ($4) {
    if ($3 !isnum || !$asc($4) ) { echo $color(info) gecerli token numarasi ve ascii numarasi giriniz. Ornek: $!sayisirala(ornek.txt,enbuyuk,2,32,msg #Forbidden).10 | return }
    else { set %dok $3 $4 }
  }
  elseif !$5 { echo $color(info) Dosyanin ciktisini ne yapmak istediginizi yazin. Ornek #Forbidden kanalina yazdiracaksaniz, $!sayisirala(ornek.txt,enbuyuk,2,32,msg #Forbidden).10 | return }
  var %topkac $prop, %j = 1, %mm
  while %j <= %topkac {
    var %i 0
    set %z 0
    set %y 42584398923849238459239582392334288249
    while %i <= $lines($1) {
      var %sa = $iif(%dok,$gettok($read($1,%i),$3,$4),$read($1,%i))
      if %sa isnum {
        if %sa >= %z && !$istok(%enbuyuk,$readn,32) { set %z %sa | set %zsonb $readn }
        if %sa <= %y && !$istok(%enkucuk,$readn,32) { set %y %sa | set %ysonk $readn }
      }
      inc %i
    }
    set %enbuyuk %enbuyuk %zsonb
    set %enkucuk %enkucuk %ysonk
    if $2 == enbuyuk { $5- $read($1,%zsonb)) }
    if $2 == enkucuk { $5- $read($1,%ysonk)) }
    unset %z %y
    inc %j
  }
}


Feragat 01 Temmuz 2022 18:11

Cevap: Text sayı sıralama
 
Merhaba, kodla ilgili açıklama metni ve örnek çıktılar da paylaşır mısın. Konuda düzenleme yaparız. Paylaşım için teşekkürler.

Mylife 01 Temmuz 2022 19:51

Cevap: Text sayı sıralama
 
Bunun için böyle uzun uzun kodlar yazmanıza gerek yok ufak bir identifier yardımı ile yapabilirsiniz.

Kod:

//echo -a $sorttok( 1 2 3 4 5 6 7 8 9 10,32,n)
=> 1 2 3 4 5 6 7 8 9 10 olarak döner.

10 dan geriye doğru sıralama için;

Kod:

//echo -a $sorttok( 1 2 3 4 5 6 7 8 9 10,32,nr)
=> 10 9 8 7 6 5 4 3 2 1 olarak döner.

Yardımcı olması için detaylı konu anlatımım; [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

İyi forumlar.

Feragat 01 Temmuz 2022 21:19

Cevap: Text sayı sıralama
 
Alıntı:

Mylife Nickli Üyeden Alıntı (Mesaj 1042698903)
Bunun için böyle uzun uzun kodlar yazmanıza gerek yok ufak bir identifier yardımı ile yapabilirsiniz.

Kod:

//echo -a $sorttok( 1 2 3 4 5 6 7 8 9 10,32,n)
=> 1 2 3 4 5 6 7 8 9 10 olarak döner.

10 dan geriye doğru sıralama için;

Kod:

//echo -a $sorttok( 1 2 3 4 5 6 7 8 9 10,32,nr)
=> 10 9 8 7 6 5 4 3 2 1 olarak döner.

Yardımcı olması için detaylı konu anlatımım; [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

İyi forumlar.

Merhaba @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] burada mIRC'in halihazırda bulunan identier'i $sorttok u kullanmak yerine bunu kendisi oluşturmuş. Bana göre bu daha değerli. Çünkü betik bir dilin özelliği onlarca alternatif yaratabilmek. Örneğin döngüyü, tanımları vb işlemleri kendin tasarlayabilmene olanak sağlıyor betikler. Tabi bu sadece mIRC Scripting için geçerli değil. Diğer Scripting betikleri için de geçerli.

Kolaylıklar dilerim.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 16:09.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net