![]() |
|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
Modificacion de archivos
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. |
|
#2
|
||||
|
||||
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. |
#3
|
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? |
#4
|
||||
|
||||
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. |
#5
|
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 ;)
|
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 22:04:51 (GMT +2)
HTCMania: líderes desde el 2007