Pascal/Turbo Pascal - Urgente... Please...

 
Vista:

Urgente... Please...

Publicado por LoCo... (16 intervenciones) el 25/03/2001 05:30:26
Hola tengo un superproblema......

Como puedo borrar en un archivo secuencial (*.txt) una linea especifica por ejemplo: si tengo esto en mi archivo de texto:

1123jkasd
223344 < y quiero eliminar esta linea o
3ewrerr cualquiera la que yo quiera
4iuo

Como le hago he intentado con el Reset pero habre el archivo solo para lectura, tambien lo intente con el append pero se posiciona en la ultima linea del archivo (hay alguna forma de mover su posicion hacia el dato que yo busco?) , tambien lo intente con el rewrite pero me elimina el archivo....... COMO DIABLOS LE HAGO??? PLEASE ES URGENTE.................
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:Urgente... Please...

Publicado por Maverick01 (26 intervenciones) el 25/03/2001 06:18:23
si la hay, pudes intentar, si no me equivoco con SEEK(), o leyendo el archivo de manera secuencial, caracter a caracter, para formar una cadena que compares con lo que buscas, si lo que encuentras no coincide, simplemente lo vas escribendo en otro archivo "lógico"(mañosamente), y si coincide, no lo escribes, para que al final, ese nuevo archivo que generaste, lo copies en el original ;)

no es la mejor solución, puede haber otra, pero es una idea, Ok??
Suerte
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:Alguna Otra alternativa???

Publicado por LoCo... (16 intervenciones) el 25/03/2001 06:57:08
Tienes alguna otra alternativa???
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:Alguna Otra alternativa???

Publicado por Diego Romero (282 intervenciones) el 25/03/2001 08:23:30
El procedumiento Seek no funciona con archivos declarados como text, y no podes "navegar" dentro de un archivo abierto en forma secuencial debido a una limitacion del DOS pero hay dos posibles soluciones.
1) declara el registro del archivo como un array de char para el caso de que todas las lineas del archivo tengan el mismo tamaño (no olvidar los caracters CR LF al final de cada linea).
2) leer el archivo con readblock declarando como buffer un solo caracter y sumar ese caracter a un string ingnorando los CR LF. Usando este metodo tendrias que armarte tu propia funcion Seek y contar las lineas a partir de cuantos CR LF leiste.
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