Autor
|
Tema: Modificacion de un txt (Leído 3,568 veces)
|
mrojasl
Desconectado
Mensajes: 4
|
Buen dia: He iniciado a hacer un pequeño programa para modificar datos dentro de un txt. Hasta ahora solo he conseguido cargar el archivo de texto y recorrer las lineas que tiene el archivo, pero el modificar cada campo aun no. Lo complicado para mi es que el archivo esta separado por tabulaciones, por ejemplo 1 2 3 4 5
y lo que necesito es que este así: 0001 0002 0003 0004 0005
osea la idea es llenar espacios vacios por 0 u otro digito. Por Favor necesito su ayuda.
|
|
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
Lee linea por linea y reemplaza los tabs por ceros. Aquí tendrás que saber cuántos espacios corresponden a un tab en el editor donde se creó el fichero y reemplazarlos con el método replaceAll. Ejemplo: public void replaceTabsWithZeros (String path ) { try ( while( (line = reader.readLine()) != null) { writer.write(line.replaceAll(" ","0000")); } } }
Cualquier error, excúsame, estoy publicando desde mi móvil
|
|
« Última modificación: 11 Marzo 2015, 14:40 pm por Gus Garsaky »
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
mrojasl
Desconectado
Mensajes: 4
|
Estimado Gus Garsaky:
Gracias por tu respuesta.
He estado provando el codigo que me propusiste pero lo que me hace es borrar todo el contenido del txt.
Saludos.
|
|
|
En línea
|
|
|
|
PabloPbl
Desconectado
Mensajes: 188
|
Modifique un poco el código de Gus y funciona perfectamente para lo que quieres: package remplace; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Remplace { public Remplace() { if(!(file.exists())) { try { file.createNewFile(); System. out. println("Se ha creado el archivo"); System. out. println("Se ha producido un problema "+ex. getMessage()); } } replaceTabsWithZeros("Archivo.txt"); } public void replaceTabsWithZeros (String path ) { try { while(true) { aux = reader.readLine(); if(aux != null) { TextFinal += aux.replaceAll(" ", "0")+"\n"; } else{ break; } } reader.close(); writer.write(TextFinal); writer.close(); System. out. println("Se ha producido un problema "+ex. getMessage()); } } public static void main (String[] args ) { Remplace rem = new Remplace(); } }
Salu2 .
|
|
« Última modificación: 11 Marzo 2015, 18:54 pm por PabloPbl »
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
Sí, fue un error. Lo que pasa es que al cargar el mismo archivo en el BufferedReader nunca leía el archivo porque estaba a la espera de escribir. Aquí te dejo la solución, pero, a la próxima, anda intentado hacerlo tu. public void replaceTabsWithZeros (File file ) { if(file.exists()) { try ( List<String> newLines = new ArrayList<>(); while( (line = reader.readLine()) != null) { System. out. println("Linea actual:\t"+line ); String newLine = line. replaceAll("\t", "0000"); System. out. println("Linea formateada: "+newLine ); newLines.add(newLine); } replaceLines(file, newLines); } } } public void replaceLines (File file, List <String > lines ) { writer.write(line); writer.newLine(); writer.flush(); } } }
Llamas al método replaceTabsWithZeros pasándole un objeto File con la ruta del archivo: public static void main (String[] args ) { TabsTest tabTest = new TabsTest(); tabTest. replaceTabsWithZeros(new File("D://test.txt")); }
Ejemplo de salida: A0000B0000C0000D0000E F0000G0000H0000I0000J K0000L0000M0000N0000O P0000Q0000R0000S0000T U0000V0000W0000X0000Y Z
|
|
« Última modificación: 11 Marzo 2015, 19:51 pm por Gus Garsaky »
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
mrojasl
Desconectado
Mensajes: 4
|
Perfecto Gracias. Ya Pude editarlo ahora solo un ultimo favor. Como podria insertar un digito en un lugar en especifico de una linea, por ejemplo en la posicion 50.
Saludos,
|
|
|
En línea
|
|
|
|
Usuario Invitado
Desconectado
Mensajes: 625
|
Extraes la porción de cadena a cambiar con el método substring(int start, int end), que devuelve un subcadena de una cadena dentro de las posiciones especificadas. Luego lo reemplazas, algo así: String newLine = line. replaceAll(line. substring(50, 60), "Texto a cambiar"); writer.write(line);
|
|
|
En línea
|
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
|
|
|
mrojasl
Desconectado
Mensajes: 4
|
Ok, Habia dejado este tema tanto tiempo que me habia olvidado de los funciones de texto.
Muchas Gracias Por su ayuda.
Saludos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Modificacion del BODY
Nivel Web
|
rokaforever
|
0
|
2,523
|
11 Abril 2008, 15:18 pm
por rokaforever
|
|
|
modificacion del foro
« 1 2 »
Sugerencias y dudas sobre el Foro
|
krackwar
|
11
|
5,153
|
2 Mayo 2008, 03:50 am
por ^Winder^
|
|
|
Proyecto de modificación del GTA.
Juegos y Consolas
|
adrian08
|
0
|
3,126
|
8 Septiembre 2017, 13:58 pm
por adrian08
|
|
|
Modificacion de cliente de MU con ollydbg y x64dbg
Ingeniería Inversa
|
bunnydroid
|
0
|
2,859
|
15 Abril 2019, 22:37 pm
por bunnydroid
|
|
|
modificacion de codigo en C
Programación C/C++
|
DAOST420
|
1
|
3,000
|
12 Noviembre 2020, 18:11 pm
por K-YreX
|
|