Originally Posted by SiJ
Quote:
Originally Posted by DeathOnaStick
Quote:
Originally Posted by SiJ
Ok.. I found the problem:
This:
Код:
printf("|%s|",country);
Prints:
Instead of |Lithuania|
Any ideas why?
Here's GetPlayerCountry function:
pawn Код:
GetParams(Source[]){ new Destination[256]; new SLen=strlen(Source); new at,pos=0,tp=0; new tempo[256];
////////////// Clearing DATA ///////////////// FOR LOOP WAS NOT WORKING FOR THIS PURPOSE format(Params[0],sizeof(Params),""); format(Params[1],sizeof(Params),""); format(Params[2],sizeof(Params),""); format(Params[3],sizeof(Params),"");
/////////////////////////////////////////////
for(at=pos;at<=SLen;at++){ strmid(tempo,Source,at,at+1,sizeof(tempo)); if(!strcmp(tempo,".",true)){ if(tp<=10){ strmid(Destination,Source,pos,at,sizeof(Destination)); format(Params[tp][0],256,"%s",Destination); tp=tp+1; } pos=at+1; } } return 1; }
GetFileData(Source[]){ new Destination[256]; new SLen=strlen(Source); new at,pos=0,tp=0; new tempo[256];
////////////// Clearing DATA ///////////////// FOR LOOP WAS NOT WORKING FOR THIS PURPOSE format(FileData[0],sizeof(FileData),""); format(FileData[1],sizeof(FileData),""); format(FileData[2],sizeof(FileData),""); format(FileData[3],sizeof(FileData),""); format(FileData[4],sizeof(FileData),""); format(FileData[5],sizeof(FileData),""); format(FileData[6],sizeof(FileData),""); /////////////////////////////////////////////
for(at=pos;at<=SLen;at++){ strmid(tempo,Source,at,at+1,sizeof(tempo)); if(!strcmp(tempo,",",true)){ if(tp<=10){ strmid(Destination,Source,pos,at,sizeof(Destination)); format(FileData[tp][0],256,"%s",Destination); tp=tp+1; } pos=at+1; } } return 1; }
GetPlayerCountry(playerid,Country[120]){ new IPAddress[256]; new a,b,c,d,ipf; new File:IPFile; new Text[256],start,end; GetPlayerIp(playerid,IPAddress,sizeof(IPAddress)); GetParams(IPAddress); a=strval(Params[0]); b=strval(Params[1]); c=strval(Params[2]); d=strval(Params[3]); if(a==127 && b==0 && c==0 && d==1){ format(Country,sizeof(Country),"Unknown"); return 1; } ipf = (16777216*a) + (65536*b) + (256*c) + d; if(!fexist("CountriesIPs/IPLIST.csv")) return SendClientMessage(playerid,0xFF0000FF,"File not found"); IPFile=fopen("CountriesIPs/IPLIST.csv",io_read); fread(IPFile,Text,sizeof(Text),false); while(strlen(Text)>0){ GetFileData(Text); start=strval(FileData[0]); end=strval(FileData[1]); if(ipf>=start && ipf<=end){ format(Country,sizeof(Country),"%s",FileData[6]); fclose(IPFile); return 1; } fread(IPFile,Text,sizeof(Text),false); } fclose(IPFile); return 1; }
EDIT: 800 posts!
|
1.: Gz for the 800
2.: I guess the problem is located in the file, you read the countries from. "Filedata[6]", or whatever you read from, might contain a space (i mean there begins a new line, dunno how its called in english ). Whatever... When it prints it like you said, the problem should be located there.
Cheerz
|
Nope.. Line in the file is without spaces:
Quote:
1045487616,1045495807,ripencc,1036713600,LT,LTU,Li thuania
|
Maybe I'll use strfind instead of strcmp..
Thanks for help
|