mIRCForumlari.Net

mIRCForumlari.Net (https://www.mircforumlari.net/)
-   IRCd Makaleler (https://www.mircforumlari.net/ircd-makaleler/)
-   -   IRCServices - Array Kullanimi (https://www.mircforumlari.net/ircd-makaleler/13202-ircservices-array-kullanimi.html)

RahmetLi 27 Mart 2023 06:34

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.

PHP- Kodu:


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;
PHP- Kodu:

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.
PHP- Kodu:

© 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;
PHP- Kodu:

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.

Makale Sahibi: toXic


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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.


Navbar with Avatar by Motorradforum