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/)
-   IRCd Makaleler (https://www.ircforumlari.net/ircd-makaleler/)
-   -   IRCServices - Array Kullanimi. (https://www.ircforumlari.net/ircd-makaleler/402240-ircservices-array-kullanimi.html)

toXic 03 Ağustos 2011 21:29

IRCServices - Array Kullanimi.
 
Bildiğiniz gibi UnrealIRCd, IRCServices vs. gibi yazilimlar C Dili ile yazilmis ve gelistirilmistir.
C'de diziler çok kullanışlıdır.
Dizileri tanımlarken tüm elemanlarını “0″'a eşitlemek faydalidir. Bunu yapmadığımız zaman RAM’de, dizinin tanımlandıği yerde ne bilgi varsa; ona göre işlem yapılır.


Kod:



char *Takimlar[]={
        "Ankaragucu",
        "Antalyaspor",
        "Besiktas",
        "Bursaspor",
        "Eskisehirspor",
        "Fenerbahce",
        "Galatasaray",
        "Gaziantepspor",
        "Kayserispor",
        "Konyaspor",
        "RizeSpor",
        "Sivasspor",
        "Trabzonspor",
        NULL
};

Dizgimizi Takimlar adi ile olusturduk.

Dizgileri siralamak icin kodlarimizi su sekilde yazabiliriz;

Kod:

int i;
for (i=0; Takimlar[i]!=NULL; i++ )
send_cmd(s_NickServ, "NOTICE %s :\2(%d\2) Numara -> \2%s", u->nick,  i+1, Takimlar[i]);
}

Komut kullaniminda dizgideki tanimli bilgileri siralayacaktir.



Alıntı:

© NickServ Kullanilabilir TAKIM Listemiz
© NickServ -
© NickServ (1) Numara -> Ankaragucu
© NickServ (2) Numara -> Antalyaspor
© NickServ (3) Numara -> Besiktas
© NickServ (4) Numara -> Bursaspor
© NickServ (5) Numara -> Eskisehirspor
© NickServ (6) Numara -> Fenerbahce
© NickServ (7) Numara -> Galatasaray
© NickServ (8) Numara -> Gaziantepspor
© NickServ (9) Numara -> Kayserispor
© NickServ (10) Numara -> Konyaspor
© NickServ (11) Numara -> RizeSpor
© NickServ (12) Numara -> Sivasspor
© NickServ (13) Numara -> Trabzonspor
Dizgimiz icerisindeki verileri kullandirmak, icerisinde olmayanlari kullandirmamak icin su yolu deneyebiliriz;


Kod:

static void do_set_takim(User *u, NickGroupInfo *ngi, char *param) {
        NickInfo *ni;
        ni = get_nickinfo(u->nick);
    const char *nick = ngi_mainnick(ngi);
        int i;
        int sonuc = 0;

        if (!param) {
                ngi->takim = NULL;
                send_cmd(s_NickServ, "NOTICE %s :Takiminiz \2 Kaldirildi.", u->nick);
                put_nickgroupinfo(ngi);
        return;
        }

        for (i=0; Takimlar[i]!=NULL; i++) {
                        send_cmd(s_NickServ, "NOTICE %s :~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", u->nick);
                        send_cmd(s_NickServ, "NOTICE %s :-\2",u->nick);
                        send_cmd(s_NickServ, "NOTICE %s :Sectiginiz takim \2 %s", u->nick, param);
                        sonuc=1;
                        break;
                }

        if (sonuc==1) {
                ngi->takim = sstrdup(param);
                send_cmd(s_NickServ, "NOTICE %s :-", u->nick);
                send_cmd(s_NickServ, "NOTICE %s :Takiminiz \2%s\2 Olarak Belirlendi.", u->nick, ngi->takim);
        } else {
                send_cmd(s_NickServ, "NOTICE %s :~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", u->nick);
                send_cmd(s_NickServ, "NOTICE %s :-\2", u->nick);
                send_cmd(s_NickServ, "NOTICE %s :\2Maalesef\2, Sahip Olmak istediginiz \2takim\2, Listemizde ekli \2degildir.\2", u->nick);
                send_cmd(s_NickServ, "NOTICE %s :Kullanilabilir takimlari listelemek icin, \2 /NS takimlar\2 Komutunu Kullaniniz.", u->nick);
                send_cmd(s_NickServ, "NOTICE %s :Ayrintili Bilgi icin, \2 #HELP \2 Kanalina giriniz..", u->nick);
                send_cmd(s_NickServ, "NOTICE %s :-\2", u->nick);
        return;
        }
}

Burada girilen veri, eğer dizgi icerisinde varsa kabul edilecel, eğer dizgi icerisinde yoksa reddedilip hata vericektir.


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

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