Cita:
Iniciado por cesar_casla
Hola! Acordate que cuando se hace referencia a una cadena se encierra entre "" (comillas dobles), en tu caso parecieran dos, debe ser:
Código C:
Ver original"addres 199.72.43.91" // solo un par de comillas
pequeño detalle pero bueno :P
Lo de codigo lento y poco elegante se corrige con el tiempo y la practica, asi q no te tires abajo(cada uno programa como puede), y postia el codigo q tengas para ayudarte y ver si se puede optimizar, y en caso de no funcionar arreglarlo
Saludos
Jaja se maneja es así "address" "IP" son dobles comillas. Mira, tengo esto es lo mas cerca que estuve de hacerlo mas rapido
Código C:
Ver originalfgets(LINE
, sizeof(LINE
), FAVORITES
); while (!feof(FAVORITES
)) { if (strstr(LINE
, "\"History\"")) { break; }
if (LINE_S
= strstr(LINE
, "\"address\"")) { if (I > 49) {
MAX_IP++;
IP_DIVIDE
= strtok(LINE_S
, "\"address\""); while ((IP_DIVIDE
= strtok(NULL
, "\"address\"")) != NULL
) { IP_F[J++] = IP_DIVIDE; }}
else {
I++; }}
El problema esta en que me imprime así, aquí todo bien, tiene al parecer dos saltos de lineas que no logro quitárselos.
Código:
199.71.232.91:27010
199.72.43.91:27010
11.11
Entonces cuando quiero imprimir IP_DIVIDE[0] me muestra así:
De donde esta sacando el texto IP y la comilla, no tengo idea.
Y tenia otra manera, que era la que mas cerca tenia, pero era lenta, solo faltaba una conversión de char a string, era esta.
Código C:
Ver originalif (FAVORITES != NULL) {
fseek(FAVORITES
, 0, SEEK_END
); CARACTER
= ftell(FAVORITES
); char PARSE[CARACTER];
fseek(FAVORITES
, 0, SEEK_SET
); PARSE
[0] = getc(FAVORITES
); while (feof(FAVORITES
) == 0) { PARSE
[i
++] = getc(FAVORITES
); }
char *P_PARSE;
char IP[20][100];
P_PARSE = PARSE;
for (j
= 0 ; j
< strlen(PARSE
) ; j
++) { if (*P_PARSE == '"' && P_PARSE++ &&*P_PARSE == 'a' && P_PARSE++ && *P_PARSE == 'd' && P_PARSE++
&& *P_PARSE == 'd' && P_PARSE++ && *P_PARSE == 'r' && P_PARSE++ && *P_PARSE == 'e' && P_PARSE++
&& *P_PARSE == 's' && P_PARSE++ && *P_PARSE == 's' && P_PARSE++ && *P_PARSE == '"') {
P_PARSE = P_PARSE+4;
if (*P_PARSE > 0) {
while (*P_PARSE != '"') {
IP[k][z] = *P_PARSE;
if (IP[k][z] == ':') {
y = k; }
k++;
P_PARSE++;
if (y > 0) {
x++;
if (x > 5) {
IP[k+1][z] = '\0';
z++;
k = 0; x = 0; y = 0; }}}}}
P_PARSE++;}
Saludos y agradezco muchísimo tu ayuda.