Ver la Versión Completa : [ CONSULTA ] Modificacion de archivos
aitor6381
02/04/13, 22:56:25
Hola a todos, tengo una pequeña duda y quería ver si es posible y si lo es si me podeis dar la solución.
Vereis, estoy montando una aplicación, y necesito escribir datos en un archivo externo, la cosa es que ese archivo ya tiene un texto, pongamos de 12 lineas, ahora, lo que necesito yo, es que inserte el texto que quiero entre la 3 y la 4 linea, es decir sin borrar lo que hay a continuación. Os dejo un ejemplo por si no me he explicado bien:
Texto sin modificar:
Linea1
Linea2
Linea3
Linea4
Linea5
...
Texto modificado:
Linea1
Linea2
NUEVA LINEA
Linea3
Linea4
Linea5
...
Atte. Aitor de la Vega.
mocelet
02/04/13, 23:26:23
Cualquier cosa que no sea añadir al final te obliga a reescribir el fichero entero.
Una opción es crearte un fichero nuevo con el texto modificado y luego cambiarle el nombre para que sustituya al original. O si solo lo usa tu aplicación, escribes encima del fichero... pero es un poco arriesgado no tener una copia por si falla algo.
aitor6381
03/04/13, 16:13:00
La cosa es lo siguiente:
Es un archivo que me descargo de internet, lo modifico y lo vuelvo a subir, la primeras lineas nunca varian, es decir, las conozco, pero las que continuan son las que cambian.
No se, ¿no habria algna forma de hacer al menos esto?:
Abro el fichero y copio todo su contenido, borro los primeros 20 caracteres (por ejemplo), inserto al principio el texto que quería escribir y luego vuelvo haz insertar esos 20 caracteres del principio, que como los conocia no tengo problema con eso.
Ej:
Archivo sin modificar:
Linea1
Linea2
Linea3
Linea4
Linea5
Modificacion 1:
Linea3
Linea4
Linea5
Modificacion 2:
Nueva linea
Linea3
Linea4
Linea5
Modificacion 3:
Linea1
Linea2
Nueva linea
Linea3
Linea4
Linea5
Pienso yo que si en un EditText se puede poner el puntero sobre una palabra escrita antes, tiene que haber una función que te permita esto ¿no?
mocelet
03/04/13, 16:42:08
Claro, en memoria puedes hacer lo que quieras, con un StringBuilder por ejemplo. En el StringBuilder metes todo el texto del fichero y luego con el método insert(..., offset) insertas cadenas de texto nuevas donde quieras. Eso es lo que hace un EditText por debajo.
Pero eso directamente en un fichero no se puede hacer, tienes que leer el fichero, hacer todas las modificaciones que quieras en memoria y luego volver a escribir todo en otro fichero o reemplazando el original.
aitor6381
05/04/13, 15:13:17
Si, más o menos me vale para lo que quiero hacer, tiene un poco más de meneo, pero da igual. Muchas gracias, si puedo ayudar en alog, aquí estoy ;)
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.