comparar cadenas.....

28/02/2005 - 12:58 por Miguel | Informe spam
Estoy haciendo un programa que me recoge un texto de un Edit y lo comparo
con un texto, el cual es buscado dentro de un fichero. Hasta este punto
parece que me funciona bien. lo malo es cuando intento comparar el texto
del Edit con el que saco del fichero me dice que no es igual, me podeis
mirar este troxo de codigo a ver si podeis ver el fallo¿?. gracias de
antemano...

void GuardaFichero2(char nombre[255],char nombre2[255],LPCTSTR
pszFileName,HWND Ventana)
{
FILE *fichero;
char leido[255];

char numero[4],cadena2[255],usuario[255];
int posicion,posicion2,i,chivnom=0,y;
fichero=fopen(pszFileName,"r");
posicion2=strlen(nombre2);
itoa(posicion2,numero,10);
MessageBox(Ventana,numero,"Primero",0);
/* Poner en blanco los arrays -*/
for(i=0;i<255;i++)
{
leido[i]='\0';
cadena2[i]='\0';
usuario[i]='\0';
}

//--
while(!feof(fichero))
{
fgets(leido,255,fichero); // lee la linea del fichero
// Busco la posicion del caracter de separacion
posicion=Buscar_Caracter(leido);
itoa(posicion,numero,10); //paso a texto la posicion del separador
if (posicion!=0)
{

for (i=0;i<posicion;i++)
{
cadena2[i]=leido[i];
}
for (i=0;i<strlen(leido);i++)
{
usuario[i]=leido[posicion+1+i];

}

}
usuario[strlen(usuario)-1]='\0';
posicion=strlen(usuario);
itoa(posicion,numero,10);
MessageBox(Ventana,numero,usuario,0);
//MessageBox(Ventana,cadena2,"Prueba",0);
//MessageBox(Ventana,usuario,"Prueba",0);

//- Comparar Usuarios
Esto es lo que me falla
if (strcmp(nombre,usuario)==0)
{
MessageBox(Ventana,"Son iguales",usuario,0);
chivnom=1;
break;
}
else
{
MessageBox(Ventana,"No son iguales","Prueba",0);
}
//-
for(i=0;i<255;i++)
{
cadena2[i]='\0';
usuario[i]='\0';
}


}
if (chivnom==0)
{
FILE *pf;
pf=fopen(pszFileName,"a");
fprintf(pf,"%s-%s",nombre,nombre2);
fclose(pf);
}
}
 

Leer las respuestas

#1 Miguel
28/02/2005 - 20:41 | Informe spam
xdon ya encontre el fallo.
"Miguel" escribió en el mensaje
news:%
Estoy haciendo un programa que me recoge un texto de un Edit y lo comparo
con un texto, el cual es buscado dentro de un fichero. Hasta este punto
parece que me funciona bien. lo malo es cuando intento comparar el


texto
del Edit con el que saco del fichero me dice que no es igual, me podeis
mirar este troxo de codigo a ver si podeis ver el fallo¿?. gracias de
antemano...

void GuardaFichero2(char nombre[255],char nombre2[255],LPCTSTR
pszFileName,HWND Ventana)
{
FILE *fichero;
char leido[255];

char numero[4],cadena2[255],usuario[255];
int posicion,posicion2,i,chivnom=0,y;
fichero=fopen(pszFileName,"r");
posicion2=strlen(nombre2);
itoa(posicion2,numero,10);
MessageBox(Ventana,numero,"Primero",0);
/* Poner en blanco los arrays -*/
for(i=0;i<255;i++)
{
leido[i]='\0';
cadena2[i]='\0';
usuario[i]='\0';
}

//--
while(!feof(fichero))
{
fgets(leido,255,fichero); // lee la linea del fichero
// Busco la posicion del caracter de separacion
posicion=Buscar_Caracter(leido);
itoa(posicion,numero,10); //paso a texto la posicion del separador
if (posicion!=0)
{

for (i=0;i<posicion;i++)
{
cadena2[i]=leido[i];
}
for (i=0;i<strlen(leido);i++)
{
usuario[i]=leido[posicion+1+i];

}

}
usuario[strlen(usuario)-1]='\0';
posicion=strlen(usuario);
itoa(posicion,numero,10);
MessageBox(Ventana,numero,usuario,0);
//MessageBox(Ventana,cadena2,"Prueba",0);
//MessageBox(Ventana,usuario,"Prueba",0);

//- Comparar Usuarios
Esto es lo que me falla
if (strcmp(nombre,usuario)==0)
{
MessageBox(Ventana,"Son iguales",usuario,0);
chivnom=1;
break;
}
else
{
MessageBox(Ventana,"No son iguales","Prueba",0);
}
//-
for(i=0;i<255;i++)
{
cadena2[i]='\0';
usuario[i]='\0';
}


}
if (chivnom==0)
{
FILE *pf;
pf=fopen(pszFileName,"a");
fprintf(pf,"%s-%s",nombre,nombre2);
fclose(pf);
}
}



Preguntas similares