![]() |
veriables problemi öncelikle herkese selamlar elimde geniş bi veriables listesi var %a 1 %b 2 %c 3 gibi yapmaya calistiğim şey bunların arasındaki en yüksek olan sayılı değişkeni ilk olarak listelemek bu konuyla ilgil fikri olan varmı örneğin /listele dediğimde %c 3 %b 2 %a 1 gibi |
Cevap: veriables problemi Şimdi bunu yapmanın mantığı şudur; İlk öncelikle kullanmamız gereken; $var identifier'ı. $var(*,0) identifier'ı ile, tüm veriable'leri while yardımı ile okutursun. Bunun için; $var(*,%while-loop'u) şeklinde yaparsın. Sonra; $($var*,%while*loop'u),2) kayıtlı olan veriable'nin değerini verir. Ama bu değer sayı değil, harf'de olabilir. Yani ne bilim; %x değeri pestpest diye bir kelimeye'de atanmış olabilir. Bunun için $regex kullanarak değer kısmında harf olup olmadığını kontrol edersin; !$regex($($var(*,%1),2),/[a-z]/g) (Burada eğer, değer kısmında harf geçmiyorsa diyoruz) Ve ek olarak; değer kısmında sadece rakam geçenleri baza alalım diyoruz; $regex($($var(*,%1),2),/[1-9]/g) (Değer kısmında rakam bulunuyorsa diyoruz) Buraya kadar herşey tamam. Ama bu alias'ı yaparken while kullandığımız için, while'a atadığımız değer ve eşitlenmesi gereken değer sayı olduğu için, komut sonunda gözükecektir. Bunun için while ile döngü yaptığımız değer'leri ayırıyoruz; !$istok(%1 %2,$var(*,%1),32) (Eğer %1 %2 değerleri veriablele'lar içinde yoksa diyoruz) Sonra bunların hepsini $addtok identifier'ı ile yan yana diziyoruz; var %= = $addtok(%=,$+($var(*,%1),½,$($var(*,%1),2)),32) While sonunda; $sorttok identifier'ı ile değer'leri en yüksekten en alçağa doğru okutuyoruz. Bunun içinde $sorttok identifier'ında "nr" parametresini kullanıyoruz. Yani kısacası kod şöyle oluyor; alias listele { var %1 = 1,%2 = $var(*,0) | while %1 <= %2 { if $regex($($var(*,%1),2),/[1-9]/g) && !$regex($($var(*,%1),2),/[a-z]/g) { if !$istok(%1 %2,$var(*,%1),32) { var %= = $addtok(%=,$+($var(*,%1),½,$($var(*,%1),2)),32) } } | inc %1 } | echo -a $replace($sorttok(%=,189,nr),$chr(189),$chr(32)) } /listele yapman yeterli olacaktır. Umarım anlamışsındır, açıklayıcı bir şekilde anlattım. |
Cevap: veriables problemi Paylaşım diye buna denir ;oki |
Yanıt: Cevap: veriables problemi Alıntı:
fakat; veriables listemde sadece %bir 1 %iki 2 %uc 3 bulunuyor. dediğin aliası direk olarak kopyaladım. komutu denediğimde karşıma çıkan şey bu 4 %= 4 %birr 1 %2 1 %2 1 %1 %1 |
Cevap: veriables problemi alias listele { set %1 1 | set %2 $var(*,0) | while %1 <= %2 { if $regex($($var(*,%1),2),/[1-9]/g) && !$regex($($var(*,%1),2),/[a-z]/g) { var %= = $addtok(%=,$+($var(*,%1),½,$($var(*,%1),2)),32) } | inc %1 } | unset %1 %2 | echo -a $replace(%=,$chr(189),$chr(32)) } Bu şekilde while döngüsünde'ki veriable'leri göstermiyecektir. Fakat $sorttok kullanıp numaraları en büyükten küçüğe okutamaya kalktığımızda, değer'ler ile değer'lere ait veriable'lerin sırası karışıyor. Ama yapmaya calışacağım, şuan'da çıkmam lazım. Gelince ilgileneceğim. |
Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 07:15. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk