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/)
-   Unreal IRCd (https://www.ircforumlari.net/unreal-ircd/)
-   -   Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem gerek? (https://www.ircforumlari.net/unreal-ircd/307137-kendi-yazmis-oldugum-bir-fonksiyonu-ekleyip-kullanmak-istiyorum-nereye-eklemem-gerek.html)

Sw33t 24 Aralık 2009 08:23

Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem gerek?
 
Kod:

int toplam(int x, int y)
{
    return (x+y);
}

Yukarıda ki gibi bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem gerekiyor?

toXic 24 Aralık 2009 08:49

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Alıntı:

Sw33t Nickli Üyeden Alıntı (Mesaj 886267)
Kod:

int toplam(int x, int y)
{
    return (x+y);
}

Yukarıda ki gibi bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem gerekiyor?



Bı kadarmı fonksiyon. x değeri ve y değerlerini toplayıp return'da o sayıya dönmüşsünüz ama nedenini anlayamadım :)

Sw33t 24 Aralık 2009 08:55

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Bu örnek bir şablon du sadece fonksiyon bu değil...

toXic 24 Aralık 2009 08:58

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Nereye koyacağını bulmak istiyorsan hepsini koymalısın 2 3 satırdan birşey anlayamayız ki :)

Sw33t 24 Aralık 2009 09:05

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Yokmu bu unrealde çeşitli işlemeri yapan fonksiyonların tutuldugu bir header dosyası ve .c dosyası.

mesela ben stringler üzerinde işlem yapmak istiyorum. Örneğin şöyle;

char *dilbilfisi(char *str)
{
int x=strlen(str);
for (...) {.... }
return str;
}

gibi bagımsız kendine char tipinde bir değer atandıgında o deger üzerinde işlem yapıp bu değeri tekrar döndürecek. Mesela bunun için henüz yazmadım ama ben konuşmalarda geçen cümleleri noktalama işaretleri ekleyip yapılabildiği kadar bir dil bilgisi düzenine koymak istiyorum server tarafından ama bunu tabi kendim yapmak istedim hem biraz unreal scriptig hakkında bilgi ediniriz .) ama nereye koyacaz yazdıgımız bu fonksiyonu.

toXic 24 Aralık 2009 09:08

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
m_message.c de
Alıntı:


if (*nick != '#' && (acptr = find_person(nick, NULL)))
{
text = parv[2];
newcmd = cmd;
ret = can_privmsg(cptr, sptr, acptr, notice, &text, &newcmd);
if (ret == CANPRIVMSG_SEND)
{
sendto_message_one(acptr, sptr, parv[0], newcmd, nick, text);
Altinda dene Özel Konusmalarını icerir bu

Sw33t 24 Aralık 2009 09:12

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
if (*nick != '#' && (acptr = find_person(nick, NULL)))
{
text = parv[2];
newcmd = cmd;
ret = can_privmsg(cptr, sptr, acptr, notice, &text, &newcmd);
if (ret == CANPRIVMSG_SEND)
{
sendto_message_one(acptr, sptr, parv[0], newcmd, nick, dilbilgisi(text));

Böyle mi? Böyle ise fonksiyonun tanımı nerede olacak (if koşulunun içinde tanımlayamayız herhalde :))

toXic 24 Aralık 2009 09:29

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
char *dilbilgisi(char *str)
{
int x=strlen(str);
for (...) {.... }
if (*nick != '#' && (acptr = find_person(nick, NULL)))
{
text = parv[2];
newcmd = cmd;
ret = can_privmsg(cptr, sptr, acptr, notice, &text, &newcmd);
if (ret == CANPRIVMSG_SEND)
{
sendto_message_one(acptr, sptr, parv[0], newcmd, nick, dilbilgisi(text));
return str;
}
}
}

Bu Sekil dene

Sw33t 24 Aralık 2009 09:41

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Teşekkür ediyorum yardım vermeye çalıştığınız için ama sanırım yukarıda ki yanlış oldu. Çünki fonsiyon deklarasyonunu yaptınız ama fonksiyonun taımı yok çalışmaz.

Konuyu şöyle anlatayım o zaman belki ben anlatamamısımdır. (Çünkü amaç unreal ircd biraz olsun ögrenmek :))

Şimdi bir fonksiyon yazdım ben bu fonksiyonu birden fazla yerde kullanmam gerektigini düşünün. Örnegin yukarıda ki fonksiyonu bir fullnamede bir text te topiclerde vs. vs. her yerde kullanabilecegimi düşünün tüm her yerde kodu böyle ayrı ayrı yazmam mı gerekecek bir fonksiyon tanımlayıp 1 defaya mahsus kullanmak istiyorum mesela ben.

toXic 24 Aralık 2009 09:42

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Simdi mantıgı anlayamadım, Her yazılan yazının sonuna .. gibi noktalarmı gelecekti?

Sw33t 24 Aralık 2009 09:45

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Yani nokta gelecek noktan sonra bosluk yoksa bovsluk cümle varsa baş harfi büyük gibi işlemlere çeviren bir fonksiyon. Ama demek istediginizi anladım şimdi. Peki ben bunu m_messange.c de yaptıktan sonra unreal.conf'ta loadmodule ye m_messeange.c'i eklemem gerekiyormu orada sadece 2 module ekli görünüyor da

toXic 24 Aralık 2009 09:53

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Hayır Zaten UnrealIRCd* nin Orjinalinde var olan bir .c dosyası make ile derlerseniz zaten derlenir fakat yazılar m_message.c den ayarlayabilirsin kanal ve nick text'lerini

topiclerini ise m_topic.c den.

Fakat, Kodların Calisacak olmasından biraz süpheliyim :)

İyi calismalar ;)

Sw33t 24 Aralık 2009 09:57

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Alıntı:

toXic Nickli Üyeden Alıntı (Mesaj 886293)
Hayır Zaten UnrealIRCd* nin Orjinalinde var olan bir .c dosyası make ile derlerseniz zaten derlenir fakat yazılar m_message.c den ayarlayabilirsin kanal ve nick text'lerini

Unrealconf'ta sadece iki modul ekli olarak görünüyorde cloak ve command bu modulude loadmodule="m_messange.so"; yapmama gerek yok o zaman.

Alıntı:

toXic Nickli Üyeden Alıntı (Mesaj 886293)
Fakat, Kodların Calisacak olmasından biraz süpheliyim :)

İyi calismalar ;)

Bende emin değilim deneyecez artık :-)

toXic 24 Aralık 2009 10:05

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Ya Yapılamaz diye bir şey yok mantıgını buldun mu her sey yapılır kod yazması kolay. Fakat Cümlenin bas harfini nasıl tanımlayacaksın o da var, Sen nocaps.c diye bir modul var Büyük harfli onu bi incele veya nocodes mi ne bir modul vardı renkli yazıları normale ceviriyordu onu bas harfine göre ayarlayabilirsin.

Uğraşırsan yaparsın, vazgecme :P

Sw33t 24 Aralık 2009 10:21

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Kod:

void dilbilgisi(char *cstr)
{
      int b=1;  // dizi içindeki zaten en bas harftir.
for (int i=0; i<strlen(cstr); i++)
{
    // Eğer har küçük ise büyütmek için 32'i çıkart büyük küçük harf arası fark 32 çünkü
    if (b=1 && *cstr >=97) {
        *cstr -= 32;
        b=0;  // ilk kelimeyi geçtik gelen bas hard degildir bunu kapat
    }
    if (b=0 && *cstr == '.') {
        b=1;  // Nokta var bundna sonraki baş harftir.
    }
    cstr++;
}
}

böyle olması gerek.

toXic 24 Aralık 2009 11:21

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
for döngüsü içinde kullandığın baglangıc tanımlaması(int i=0;) o modda kullanılamaz

Kod:

int i=0;
for (int i=0; i<strlen(cstr); i++)

For döngüsünü Yukardaki gibi Kullanın o sekilde hata verebilir

Sky-Dancer 24 Aralık 2009 18:01

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
sw33t, öncelikle belirtmem gerekiyor,
PHP'nin bir programlama dili olduğunu savunan insanlara her zaman söylediğim "PHP Bir programlama dili değil, script dilidir" lafının tam tersini burada kullanmam gerekiyor :S
"Unreal scripting" demişsiniz de,
Unreal, c ile yazılı bir program ve derlenebildiği için, Scripting olarak değil, kodlama olarak anmanız bence daha uygun olur (Laf vermek amaçlı söylemedim, sadece bilgilendirme veya gözden kaçırdığınız yerlerden birini söylemek istedim.)

Onun haricinde, istediğiniz işlem için, fonksiyonunuzu herhangi bir genel dosyada tanımlayıp ( ircd.c s_serv.c s_user.c gibi ),
sonrasında include dizinindeki genel .h dosyalarından biri olan, h.h gibi bir dosyada bu fonksiyonun extern ile bir prototipini tanımlamanız gerekiyor..

----------

dediğim şekilde düşünüp, h.h dosyasını açarsanız (gördüğüm kadarı ile en azından biraz da olsun bilginiz var..) ne demeye çalıştığımı anlayacaksınız..

iyi Çalışmalar..

Sw33t 24 Aralık 2009 19:31

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Aslında temele inecek olursa C/C++'da programlama dili değile kadar gider :) Hepsi derleyiciler tarafından makina dilini çevriliyor sonuc olarak. Tabi bunun böyle oldugunu savunmuyorum... Ben sadece unrealin bir sürü işlev fonksiyon kendine özgü bir moduler yapısı kendi öz bir yazım kuralı olmasından dolayı böyle söy lemek istedim yoksa tabi temel C programlama dili. Yinede siz benden daha iyi bilirsiniz açıklama için teşekkür ederim.

Sky-Dancer 24 Aralık 2009 23:24

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Alıntı:

Sw33t Nickli Üyeden Alıntı (Mesaj 886988)
Aslında temele inecek olursa C/C++'da programlama dili değile kadar gider :) Hepsi derleyiciler tarafından makina dilini çevriliyor sonuc olarak. Tabi bunun böyle oldugunu savunmuyorum... Ben sadece unrealin bir sürü işlev fonksiyon kendine özgü bir moduler yapısı kendi öz bir yazım kuralı olmasından dolayı böyle söy lemek istedim yoksa tabi temel C programlama dili. Yinede siz benden daha iyi bilirsiniz açıklama için teşekkür ederim.

işte php nin mantığı php.exe(win32) veya php(linux) dosyaya parametre olarak dosyayı gönderip, Bu dosyayı yorumlamasını sağlamak..
mirc de aynı şekilde, text dosyalarına yazılan kodları yorumla***** KENDİSİ işlem yapar..
fakat, bir programlama dilinde, üretilen bir binary (dll, ocx, exe vb.) olması lazımdır..
Benim bildiğim bu :P

diğer konuda, umarım söylediğim yerler işinize yaramıştır..

iyi Çalışmalar..

toXic 25 Aralık 2009 17:50

Cevap: Kendi yazmış olduğum bir fonksiyonu ekleyip kullanmak istiyorum nereye eklemem
 
Alıntı:

toXic Nickli Üyeden Alıntı (Mesaj 886336)
for döngüsü içinde kullandığın baglangıc tanımlaması(int i=0;) o modda kullanılamaz

Kod:

int i=0;
for (int i=0; i<strlen(cstr); i++)

For döngüsünü Yukardaki gibi Kullanın o sekilde hata verebilir


Özür dilerim yukardaki icin fakat doğrusu su sekil olacaktı;

Kod:

      int b=1;
int i=0;
for (i=0; i<strlen(cstr); i++)

Bu Sekil Kullanmalisiniz.

Kod:

for (int i=0; i<strlen(cstr); i++)
{

Böyle olunca hata verir derlemede :)


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

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