Tekil Mesaj gösterimi
Alt 08 Ocak 2008, 21:24   #5
Çevrimdışı
CaPaCuL
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Soru bankasini alfabetik olarak siralama




aCoustiC Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Guzel duzenlenmis ellerine saglik fakat Numara ile baslayan sorularini duzenlemen lazim sebebide eger renk kodlari geldiginde soru da da numara bulunduguunda pix reng halini alip renkler isteginden farklı cikmaya vasliyor. her sorunun onune ' " @ gibi karakteristik eklentiler yaparsan bu tarz hatalarda karsina cikmayacaktir.

mIRc Code

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
alias duzelt { var %x $lines(banka.txt) while (%x >= 1) { if ($regex($gettok($read(banka.txt,%x),1,42),^[Aa].+)) { inc %y if ($regex($gettok($read(banka.txt,%x),1,42),.+[[:space:]]$)) { var %::x = $lower($left($gettok($read(banka.txt,%x),1,42),-1)) var %::y = $lower($replace($gettok($read(banka.txt,%x),2,42),Ş,ş,İ,i,Ü,ü,Ğ,ğ,Ç,ç,Ö,ö)) write banka2.txt $+(@,$buyult(%::x),?,*,%::y) } else { var %::x = $lower($gettok($read(banka.txt,%x),1,42)) var %::y = $lower($replace($gettok($read(banka.txt,%x),2,42),Ş,ş,İ,i,Ü,ü,Ğ,ğ,Ç,ç,Ö,ö)) write banka2.txt $+(@,$buyult(%::x),?,*,%::y) } } dec %x } echo işlem tamamlandi %y işlem gerçekleşti unset %y } alias buyult { var %a = 0, %aa = 0, %b, %c, %d while (%aa < $0) { inc %aa %c = $eval($+($,%aa),2) %d = $iif(%d,%d $+ $chr(44)) %c } tokenize 32 %d while (%a < $0) { inc %a %c = $eval($+($,%a),2) %b = %b $+($upper($left(%c,1)),$right(%c,-1)) } return %b }

Trivia Oyun botunuzun soru bankasini alfabetik yapmak ve düzenli olmasini sağlamak için yaptigim bir kodcuk


Düzenek su sekilde calismakta

çok fazla soru oldugu zaman mirc'iniz yogun calisacagindan direkt olarak secenekli olarak alfabetik siraya dizdim manuel olarak siz belirlemek zorunda kalacaksınız hangi harf'i yazmasi gerektigini.


if ($regex($gettok($read(banka.txt,%x),1,42),^[Aa].+)) {

kısmındaki Aa yazilarini Bb yaparsaniz direkt olarak b ile baslayan harfleri blirteceginiz data türüne yazacaktır.

if ($regex($gettok($read(banka.txt,%x),1,42),^[Aa].+)) {

Aa kısmına
0-9
yazarsaniz numaralari
\W
yaparsaniz harf ve rakam olmayan özel karakterleri de listeleyecektir

Uymanız gereken kurallar.

$lines(banka.txt) buradaki banka.txt içerisinde düzenlemek istediginiz soru bankasinin sorulari olmak zorunda.

write banka2.txt buradaki banka2.txt de düzenlenmis sorularin yazilacagi metin belgesi istege baqli olarak değiştirebilirsiniz.


AMACI:

Sorular arasındaki her bosluktan sonra harfler büyütülmekte.
A Milli Futbol Takımımız Tarihinde Ilk Kez Kaç Yılında Dünya Kupasına Katılmıştır?*1954
gibi güzel ve anlasilir bir yazi metni kazandirmis oluyoruz bu sayede.
renk kodlarinin kaymamasi icinde her sorunun basina @ isareti eklenmekte

Cevap kısmındaki türkce karakterleri (LOWER) yani kücültülmekte
cevaplarin kücük ytazilmasindaki amac eggdrop'un türkçe karakter setini tanimlamiyor olmasi ve cevap dogru bile olsa algilamamaktadir.

evet aCoustiC bunlardi, mutesekkirim, ancak ben tam anlamiyle bunun isleyisini cozemedim. Biraz girift olacak ama bu kodlamada nasil bir degisiklik yapilip da siralama daha hassaslastirilabilir. Farzedelim ben Turkce karakterleri cevirdim hepsini (Nitekim Editplus ile cevirdim), Ama sadece /duzelt komutuyla bir defada alfabedeki tum harflere gore cevirsin. Ben tek tek Aa, Bb,Cc icin ugrasmayayim. Aynı zamanda rakam ve karakterle baslayan sorular harflerden once gelsin, bir de Aydın Afyon Adımayan diyelim, Bunları da Adıyaman Afyon Aydın diye sıralayabilsin her harf kategorisinde aynı zamanda.

Edit: Mesela kodun içerisindekilerden 1 42 -1 nedir? Ornegin soru satiri icin ? veya * karakterine kadar olan kisim -1 olsa diyorum (TCL yazilimina kiyasla) ama tam tutturamiyorum. Bu kodlamayla su haliyle mesela KAOS icin hazirlanmis sorulari siralamak imkansiz. Cok cevapli ve * karakteri ile ayrilmis cevaplar kismindan sadece ilkini aliyor.

[Aa] kısmında A ile baslayanlari siraliyor burda nasıl bir degisiklik yaparız da bir defada )"01234556789ABCDEFG..VYZ seklinde siralayabiliriz. A'dan sonra 2. sıradaki harfe gore bi siralama yok mesela bu biraz daha az onemli benim icin ama bunun icin sanirim bir bu kadar daha kod yazmak gerecek.

aCoustiC madem seni 21 subattan sonra goremicez, cahil adama aciklar gibi biraz izahat yapabilir misin, cok makbule gececek:p. TCL den karinca kararinca anlarim ama bu biraz daha farkli bi olay.


Konu CaPaCuL tarafından (08 Ocak 2008 Saat 23:30 ) değiştirilmiştir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet