[Solved] Country help
#6

Quote:
Originally Posted by SiJ
Ok.. I found the problem:
This:
Код:
printf("|%s|",country);
Prints:
Quote:

|Lithuania

|

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
Reply


Messages In This Thread
[Solved] Country help - by SiJ - 22.01.2010, 14:06
Re: strcmp help - by DeathOnaStick - 22.01.2010, 14:35
Re: strcmp help - by SiJ - 22.01.2010, 14:38
Re: strcmp help - by DeathOnaStick - 22.01.2010, 14:55
Re: strcmp help - by SiJ - 22.01.2010, 15:55
Re: strcmp help - by DeathOnaStick - 22.01.2010, 16:52
Re: strcmp help - by SiJ - 22.01.2010, 17:07
Re: strcmp help - by DeathOnaStick - 22.01.2010, 17:13

Forum Jump:


Users browsing this thread: 1 Guest(s)