Padekit optimizuoti

Skelbti atsakymą
Žinutė
Autorius
lative
Pranešimai:6
Užsiregistravo:2005 05 28 13:35
Padekit optimizuoti

#1 Standartinė lative » 2005 06 01 23:45

struct Messages { char *cmd; void (* func)(char *,char *,char *); } msgs[] = {
{ "PRIVMSG", _privmsg },
{ "PING", _ping },
{"433",_433},
{"472",_472},
{"473",_473},
{"474",_474},
{"475",_475},
{ (char *)0, (void (*)(char *,char *,char *))0 } };

void init(char *buff)
{
char buf[4096],*str;
if(strlen(buf)>4024)
return;
int i=0;
strcpy(buf,buff);
str=strtok(buf,"\n");
while(str && *str)
{
char sender[1000],name[1000],param[1000],text[1024];
if(str[0]==':')
{
for( i=0;i<strlen(str) && str!=' ';i++);
str=0;
strcpy(sender,str+1);
for(int s=0;s<strlen(sender) && sender[s]!='!';s++);
sender[s]=0;
strcpy(sender,sender);
strcpy(str,str+i+1);
for(i=0;i<strlen(str) && str != ' ';i++);
str=0;
strcpy(name,str);
strcpy(str,str+i+1);
for(i=0;i<strlen(str) && str != ' ';i++);
str=0;
strcpy(param,str);
strcpy(str,str+i+1);
strcpy(text,str+1);
}
else
{
for( i=0;i<strlen(str) && str!=' ';i++);
str=0;
strcpy(name,str);
strcpy(str,str+i+1);
for( i=0;i<strlen(str) && str!=' ';i++);
str=0;
strcpy(text,str+1);
strcpy(str,str+i+1);
}
str=strtok((char*)NULL,"\n");
for(i=0;i<7;i++)
{
if(strcmp(msgs[i].cmd,_strupr(name))==0)
msgs[i].func(param,text,sender);
}
}
}

Gal kas galit padeti optimizuoti
Sita funkcija atskiria irc serverio komandas bet tie buferiai surija daug atminties

lative
Pranešimai:6
Užsiregistravo:2005 05 28 13:35

#2 Standartinė lative » 2005 06 03 22:58

Tai koks cia programavimo forumas

Skelbti atsakymą

Grįžti į

Dabar prisijungę

Vartotojai naršantys šį forumą: 6 ir 0 svečių