C/Visual C - eliminar caracter archivos

   
Vista:

eliminar caracter archivos

Publicado por miguel (4 intervenciones) el 23/11/2007 00:47:54
Hola, tengo que filtrar un fichero plano de texto para quitarle ciertos caracteres. Abro el archivo, lo recorro, pero no se que función utilizar para extraer el caracter deseado del fichero. No puedo ir cogiendo los caracteres que deseo e ir copiandolo en otro archivo, porque la operacion la tengo que hacer con muchos ficheros. Trabajo en C

Gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:eliminar caracter archivos

Publicado por Nelek (818 intervenciones) el 23/11/2007 09:17:29
Has mirado el fseek y demas funciones del estilo?

En el peor de los casos siempre puedes usar un buffer para guardar el contenido de bloques de datos leidos y procesarlo como si fuera un array en un bucle con un if para localizar el simbolo que no quieres y quitarlo de en medio. para luego guardarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar caracter archivos

Publicado por miguel (4 intervenciones) el 25/11/2007 20:29:37
Si, pero con fseek sólo puedo posicionarme en una determinada posicion del fichero. Lo que yo deseeo es extraer el fichero del archivo para que no aparezca más.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar caracter archivos

Publicado por Nelek (818 intervenciones) el 29/11/2007 14:10:25
Te vas al principio, buscas hasta encontrar el primer caracter y lo borras, te vas al principio (o sigues desde la posicion en la que estabas) y buscas el siguiente caracter... asi hasta el final.

No hay ningun metodo (al menos que yo sepa) que haga lo que tu pides para todo el fichero a la vez. Tendras que usar un bucle para repetir la accion tantas veces como caracteres de esos haya.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar caracter archivos

Publicado por miguel (4 intervenciones) el 29/11/2007 21:05:40
Ok, yo lo hago asi, lo voy recorriendo, lo que no sé es cómo borrar el caracter, es decir, extraerlo del fichero para que ya no esté.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eliminar caracter archivos

Publicado por Nelek (818 intervenciones) el 04/12/2007 16:04:32
Cito de mi primera respuesta:

"En el peor de los casos siempre puedes usar un buffer para guardar el contenido de bloques de datos leidos y procesarlo como si fuera un array en un bucle con un if para localizar el simbolo que no quieres y quitarlo de en medio. para luego guardarlo."

O sea

vector_leido [N];
vector_temp[N];
int contador_leido = 0;
int contador_temp= 0;

for (contador_leido = 0; contador_leido< N; contador_leido++)
{
if (vector_leido [contador_leido] != caracter_a_borrar)
{
vector_temp[contador_temp] = vector_leido[contador_leido];
contador_temp++;
}
}

y una vez tengas todos los caracteres MENOS el que no quieres... contador_temp es el numero de elementos que necesita el vector, asi que lo unico que te queda es reservar memoria dinamicamente con alloc o malloc y mandar el contenido del temporal a otro vector. Dicho vector_final es lo que luego mandas al archivo corregido usando el fwrite y contador_final * sizeof (vector_final[0]);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar