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/)
-   Eggdrop, NeoStats, BNC (https://www.ircforumlari.net/eggdrop-neostats-bnc/)
-   -   Soru bankasini alfabetik olarak siralama (https://www.ircforumlari.net/eggdrop-neostats-bnc/46689-soru-bankasini-alfabetik-olarak-siralama.html)

CaPaCuL 07 Ocak 2008 22:01

Soru bankasini alfabetik olarak siralama
 
Ister trivia ister KAOS botu icin olsun sahsen ben soru bankasindaki sorularin daginikligindan ve karmasikligindan sikayet ediyorum. Konu ile alakadar olarak bir kac sorum ve sorunum var;

1- Trivia botun standart soru bankasinda bile en az 18000-20000 soru var. genisletebilenler vardir mutlaka ama bunlarin cogunda birbirinin tekrari olan yuzlerce soru var. Hadi bunu gecelim gunleri hatta aylari bulabilen sıkıcı bi calisma ile giderilebilir belki. Ama sorularin allak bullak yerlerde olmasi yani alfabetik sirada olmamasi sahsen benim cok dert ettigim bir konu. Bu forumda mi yoksa baska bir yerde mi bilemiyorum (burda aradim bulamadim) merlin.tcl konusu olan bi baslik altinda aCousTiC mIRC kodlariyla mevcut satirlari alfabetik olarak siralamayi gostermisti. Bu bilgi eger benim hafizam bozuk degil ve gercekten mevcut ise guncellenebilir mi?

Kod:

roma Rakaminda 1000*XXV
almancada "seni seviyorum" *ich liebe dich
fransizca "seni seviyorum" *je t'aime
ingilizcede yardim*help
Beretta silahinin bir modeli?*f92
Ping'in AcIlImI Nedir*Pocket Internet Network Group
dunyanin en cok domuz yetistiren ulkesi *danimarka

goruldugu gibi siralama icler acisi. Benim gordugum veya gordugumu sandigim calisma sonucunda, soru bankasindaki rakamla baslayan satirlar baslarda ve sonrasinda alfabetik olarak siralama devam ettigi seklindeydi.


2- Bu calisma mumkun ise soyle bir handikapi vardi sanirim, Turkce karakterler siralamada regsub a dahil edilemiyordu. Bunun icin herkesin soru bankasindaki Turkce karakterleri degistirmesi gerekiyor. Bu da onbinlerce satir bulunan o dosya icinde samanlikta igne aramak kadar zor. Ki bir de onlari degistirmesi var. Ornegin dosyadaki tum ı harflerini i ile degistirecek, ama İ harfini kapsamayacak, yani buyuk kucuk hassasiyeti olacak bi text editor veyahut javascript ile de belki olabilir?

BuCaLI 07 Ocak 2008 22:05

Cevap: Soru bankasini alfabetik olarak siralama
 
Bot soruları sorarken zaten random olarak rastgele-karışık alıyor soruları dosyadan. alfabetik olmasının bir önemi kalmıyor o açıdan.

CaPaCuL 07 Ocak 2008 22:17

Cevap: Soru bankasini alfabetik olarak siralama
 
Ilgin icin tesekkur ederim BuCaLI ama benim sorum ve sorunum bu degil, random olarak soru secmesi ayri bir sey, birbirinin ayni olan bir cok soru var birinde Turkce karakter var digerinde yok, ve konusu ve cevabi ayni veya konu ayni cevaplar tutmuyo, birinden biri yanlis, bunlarin tespiti icin ideal bir cozum ve bahsettigim konuyu eger gercekten okumus olanlar olup da guncelleyebilecek olsalardi elimizde bulundurabilecegimiz guzel bi calisma olurdu.

Brain 08 Ocak 2008 13:53

Cevap: Soru bankasini alfabetik olarak siralama
 
Dogru anladiysam:

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
Alternatif: [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Daha once mirc kodlari ile gerek burada gerek baska yerlerde yayinlanmisti.

sanirim ulasmak istediginiz amaca hizmet edecegini dusunuyorum ufak 1 degisiklikle manuel den uzaklastirilip her islem icin sadece yeni 1 kayit almaniz yeterli olacaktir. Yinede su an ki haliylede sizi yeterince memnun edecegine eminim.

CaPaCuL 08 Ocak 2008 21:24

Cevap: Soru bankasini alfabetik olarak siralama
 
Alıntı:

aCoustiC Nickli Üyeden Alıntı (Mesaj 108570)
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:


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.

CaPaCuL 09 Ocak 2008 02:25

Cevap: Soru bankasini alfabetik olarak siralama
 
Aa siralamasi gibi tek bir karakter grubu icin;
1) basina @ eklemeden,
2) bosluklardan sonra her harfi buyutmeden,
3) cevap kisminda Turkce karakter var mi yok mu aramadan
4) multi cevap kismini da aynen ekleyen bi siralama yaptim.

Kod:


alias duzelt {
  var %x $lines(banka1.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 = $left($gettok($read(banka.txt,%x),1,42),-1)
        var %::y = $gettok($read(banka.txt,%x),2-,42)
        write banka2.txt $+(%::x,?,*,%::y)
      }
      else {
        var %::x = $gettok($read(banka.txt,%x),1,42)
        var %::y = $gettok($read(banka.txt,%x),2-,42)
        write banka2.txt $+(%::x,?,*,%::y)     
      }
    }
    dec %x
  }
  echo işlem tamamlandi %y işlem gerçekleşti
  unset %y
}

Ancak bu sadece Aa gibi bir tek karakter/harf grubu icin oldu. Bundan sonrasi icin yapmak istedigim sey;

A ve a, B ve b .... Z ve z siralamda oncelikli olmak uzere tek komutta siralamayi yapsin. Mesela once, harf olmayan karakterler, sonra rakamlar, sonra A ile baslayanlar, sonra a ile baslayanlar, sonra B ile baslayanlar, sonra b ile baslayanlar .................. gibi br tek /duzelt komutuyla siralama basarili bir sekilde olsun.

Biraz masrafli bir istek ama yardimlarini bekliyorum aCoustiC


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

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