Ir a contenido


Foto
- - - - -

Crear Un Programa Que Edite Un Archivo De Texto


  • Please log in to reply
5 replies to this topic

#1 Zerfoinder

Zerfoinder

    Member

  • Hentais
  • Pip
  • 205 Mensajes:

Escrito 10 December 2009 - 03:25 PM

Hola, pues necesito realizar, bueno, de hecho lo que necesito es usar un programa que me edite un archivo de texto, no es la gran cosa, supongamos que tengo un archivo tal que así:
Linea1    |primera linea    | 
Linea2    |segunda linea    |
Linea3    |tercera linea    |
Linean    |enesima linea    |

Pues me gustaría ejecutar dicho programa y que el resultado sea tal que así:
Linea1|primera linea|Linea2|segunda linea|Linea3|tercera linea|Linean|enesima linea|
(o sea, eliminar saltos de línea y espacios inútiles
¿podría alguien ayudarme?

ya googlié, pero no supe explicarle la busqueda al navegador.

Yo sé programar en varios lenguajes, pero preferiría que fuera en Visual Basic porque es del único que tengo compildor en esta PC.
Yo sé que tal vez esto suena a cosa fácil, pero la verdad es que ando perdido, gracias

Este tema ha sido editado por Zerfoinder: 10 December 2009 - 03:26 PM


#2 neo_rok

neo_rok

    Spinzaku

  • FL Fansub
  • 5769 Mensajes:

Escrito 10 December 2009 - 04:20 PM

En java:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;

public class Reemplazo {

	public static void main(String[] args) {
		if(args.length==0){
			System.out.println("Especifique la ruta del archivo");
			System.exit(0);
		}
		try {
			BufferedReader reader = new BufferedReader(new FileReader(args[0]));
			StringBuilder texto = new StringBuilder();
			while(true){
				String linea = reader.readLine();
				if (linea == null){
					break;
				}
				texto.append(linea);
			}
			reader.close();
			
			PrintWriter writer = new PrintWriter(args[0]);
			writer.write(texto.toString().replaceAll("[\\s*\\|][\\s]", ""));
			writer.flush();
			writer.close();
			System.out.println("Archivo " + args[0] + " actualizado");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Eso pasandole la ruta del archivo por línea de comandos:

java Reemplazo /ruta/del/archivo

Lo haría en VB, pero tengo siglos sin tocar esa cosa.

Este tema ha sido editado por neo_rok: 10 December 2009 - 04:20 PM

Imagen enviada
Pero nunca nunca nunca nunca jugaré algo en Easy, va en contra de la masculinidad gamer. Juegas en Easy y se te acorta la verga a la mitad.
Troya ardio por una mujer...los foros arden (en mas de un sentido) por las 5 protas de K-on...al final, las mujeres tienen la culpa de todo

#3 Zerfoinder

Zerfoinder

    Member

  • Hentais
  • Pip
  • 205 Mensajes:

Escrito 10 December 2009 - 04:25 PM

En java:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;

public class Reemplazo {

	public static void main(String[] args) {
		if(args.length==0){
			System.out.println("Especifique la ruta del archivo");
			System.exit(0);
		}
		try {
			BufferedReader reader = new BufferedReader(new FileReader(args[0]));
			StringBuilder texto = new StringBuilder();
			while(true){
				String linea = reader.readLine();
				if (linea == null){
					break;
				}
				texto.append(linea);
			}
			reader.close();
			
			PrintWriter writer = new PrintWriter(args[0]);
			writer.write(texto.toString().replaceAll("[\\s*\\|][\\s]", ""));
			writer.flush();
			writer.close();
			System.out.println("Archivo " + args[0] + " actualizado");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Eso pasandole la ruta del archivo por línea de comandos:

java Reemplazo /ruta/del/archivo

Lo haría en VB, pero tengo siglos sin tocar esa cosa.

Gracias Neo_Rok, me pongo a descargar el JDK y a probar, eso mero buscaba.

#4 Kharn

Kharn

    Member

  • Hentais
  • Pip
  • 219 Mensajes:

Escrito 14 December 2009 - 02:31 PM

VB.NET 3.5

Imports System.Text.RegularExpressions
Imports System.Text
Module Module1


    Sub Main()
        Dim texto As String
        Dim file = My.Application.CommandLineArgs(0)
        If file Is Nothing Then
            Console.WriteLine("No se ha especificado el archivo")
            Console.ReadLine()
            End
        End If
        Dim strBuilder As New StringBuilder()
        Try
            Dim strReader = My.Computer.FileSystem.OpenTextFileReader(file)
            While (Not strReader.EndOfStream)
                strBuilder.AppendLine(strReader.ReadLine())
            End While
            strReader.Close()
            texto = strBuilder.ToString()
            texto = Regex.Replace(texto, "\s*\|", "|")
            texto = Regex.Replace(texto, "\|\s*", "|")
            Dim strWriter = My.Computer.FileSystem.OpenTextFileWriter("C:\asd2.txt", False)
            strWriter.Write(texto)
            strWriter.Close()
            Console.WriteLine(texto)
            Console.WriteLine("Archivo " + file + " actualizado")
            Console.ReadLine()
        Catch IOe As IO.IOException
            Console.WriteLine("Error de E\S")
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Sub

End Module

Reemplazo.exe "archivo"

Se creará una copia en C: llamada "asd2.txt" (mi nombre genérico xD). Puedes cambiarlo en el código.

Este tema ha sido editado por Khârn: 14 December 2009 - 03:01 PM


#5 Zerfoinder

Zerfoinder

    Member

  • Hentais
  • Pip
  • 205 Mensajes:

Escrito 14 December 2009 - 09:12 PM

VB.NET 3.5
Se creará una copia en C: llamada "asd2.txt" (mi nombre genérico xD). Puedes cambiarlo en el código.


Muchas gracias por tu ayuda. me fue muy util tambien

#6 Dhampir

Dhampir

    Hentai-sama

  • Hentais
  • PipPipPipPipPipPipPip
  • 4662 Mensajes:

Escrito 14 December 2009 - 10:07 PM

0 $ perl -ne 'chomp; s/\W+\|/|/g ; print $_' < asd.txt
Linea1|primera linea|Linea2|segunda linea|Linea3|tercera linea|Linean|enesima linea|

0 $ cat asd.txt | xargs | sed -e 's/ *| */|/g'
Linea1|primera linea|Linea2|segunda linea|Linea3|tercera linea|Linean|enesima linea|

Imagen enviada
"On the edge of the blade, but no one makes the hero bleed."





1 usuarios están leyendo este tema

0 miembros, 1 invitados, 0 usuarios anónimos