Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con tildes en archivos

Estas en el tema de Problema con tildes en archivos en el foro de C/C++ en Foros del Web. Hola, mi problema es el siguiente. Estoy intentando leer de un archivo un texto, lo que hago con la función fscanf(fichero, "%s\n%[A-Za-z0-9 .,óíú]", texto) ; ...
  #1 (permalink)  
Antiguo 22/11/2009, 08:36
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
Problema con tildes en archivos

Hola, mi problema es el siguiente.

Estoy intentando leer de un archivo un texto, lo que hago con la función fscanf(fichero, "%s\n%[A-Za-z0-9 .,óíú]", texto); y lo guardo en una varible tipo cadena llamada texto.

El tema es que me funciona perfectamente, menos para las letras con tilde, que las sustituye por las que le da la gana, y eso que están incluidas en el formato que dentro del fscanf.

¿Cómo puedo arreglar esto?
  #2 (permalink)  
Antiguo 22/11/2009, 11:06
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Problema con tildes en archivos

¿Probaste a usar fgets?
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 22/11/2009, 17:54
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
Respuesta: Problema con tildes en archivos

Pues la verdad es que no, porque no tengo muy claro como hacerlo. Tengo cinco tipos de datos, escritos cada uno en una linea del fichero, y que leo y asigno a cinco variables distintas. Esto es lo que tengo:

fscanf(fichero, "%d\n%[A-Za-z0-9 .,óíú]\n%[A-Za-z0-9 .,óíú]\n%[A-Za-z0-9 .,óíú]\n%d", &var1, var2, var3, var4, &var5);

¿Como se pondría esto con fgets?

Creo que el prototipo de la funcion es: fgets(fichero, 100, var1); ¿pero como lo pongo para que lea las cinco lineas y asigne cada una a una variable.
  #4 (permalink)  
Antiguo 23/11/2009, 01:06
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Problema con tildes en archivos

Proba con esto:
Código:
char line[80];
fgets(line, sizeof(line), fichero);
sscanf(line, "%d", &var1);
fgets(var2, sizeof(var2), fichero);
fgets(var3, sizeof(var3), fichero);
fgets(var4, sizeof(var4), fichero);
fgets(line, sizeof(line), fichero);
sscanf(line, "%d", &var5);
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 23/11/2009, 08:35
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
Respuesta: Problema con tildes en archivos

No me termina de funcionar. Me dan numeros raros, y salen comas ( , ) donde no deberían salir.

Dejo el código que tengo para ver si sabes cual es el problema:

Código:
#include <stdio.h>
int main(void)
{
    int salir;
    Leer();
    printf("Todo ha ido bien");
    scanf("%d", &salir);
    return 0;
}

int Leer()
{    
    int numero, tiempo, salir;
    char categoria[400], objetivo[1000], descripcion[1000];
	char line[80];
    FILE* fichero;
    
    fichero=fopen("bateria.txt", "r"); 

	if (fichero == NULL)
	{
		printf("No se puede abrir el fichero\n");
		return 0;
	}
	else
	{
		while ( !feof(fichero) )
		{
            fgets(line, sizeof(line), fichero);
                sscanf(line, "%d", &numero);
                fgets(categoria, sizeof(categoria), fichero);
                fgets(objetivo, sizeof(objetivo), fichero);
                fgets(descripcion, sizeof(tiempo), fichero);
                fgets(line, sizeof(line), fichero);
                sscanf(line, "%d", &tiempo);
	        printf("%d, \n%s, \n%s, \n%s,\n %d\n", numero, categoria, objetivo, descripcion, tiempo);
        }
    }
	close(fichero);
	return numero;
}
  #6 (permalink)  
Antiguo 23/11/2009, 08:53
 
Fecha de Ingreso: septiembre-2009
Mensajes: 124
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Problema con tildes en archivos

Hola!

Proba con la funcion utf8_encode($texto). Ya que el texto que estas trayendo a la pagina esta sin formato y debes encodearlo a utf8 (dependiendo en si de tu web, si esta en formato utf8).

Mmmm, si no llega a funcionar, avisa y seguimos intentando.

Saludos!
  #7 (permalink)  
Antiguo 23/11/2009, 09:00
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
Respuesta: Problema con tildes en archivos

Mmmh... el código, no es de una página web, sino de un programa en C ¿también sirve esta función dentro de C?, y de ser así, ¿me puedes poner un ejemplo de como y donde se utilizaría?
  #8 (permalink)  
Antiguo 23/11/2009, 09:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 124
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Problema con tildes en archivos

Vos sabes que hay gente idiota y yo, que estoy un paso mas arriba que ellos, jajaja
Te pido mil disculpas, estaba leyendo un foro de php y este (en Mensajes nuevos) y parece que no lei y escribi aca.

Perdon!
  #9 (permalink)  
Antiguo 23/11/2009, 09:18
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
Respuesta: Problema con tildes en archivos

ok, no pasa nada. Es solo que me había extrañado bastante.

¿Alguna idea de como soluciono lo de las tildes?
  #10 (permalink)  
Antiguo 23/11/2009, 10:18
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Problema con tildes en archivos

Depuralo; sino tira algun archivo de entrada.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:01.