Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] [C#] Editar líneas de archivos de texto

Estas en el tema de [C#] Editar líneas de archivos de texto en el foro de .NET en Foros del Web. Buenas, Tengo un problema a la hora de modificar las líneas (textos) que hay dentro de un archivo .txt @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código vb: Ver original ...
  #1 (permalink)  
Antiguo 02/09/2015, 15:13
Avatar de Tropy  
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 4 meses
Puntos: 1
[C#] Editar líneas de archivos de texto

Buenas,

Tengo un problema a la hora de modificar las líneas (textos) que hay dentro de un archivo .txt

Código vb:
Ver original
  1. using (StreamWriter fileWrite = new StreamWriter(@"C:\Users\Usuario\Desktop\Textos\carpetaArchivos\" + nombreArchivo + ".txt"))
  2.                 {
  3.                     using (StreamReader fileRead = new StreamReader(@"C:\Users\Usuario\Desktop\Textos\carpetaArchivos\" + nombreArchivo + ".txt"))
  4.                     {
  5.                         string line;
  6.                         string txtUsuario;
  7.  
  8.                         while ((line = fileRead.ReadLine()) != null)
  9.                         {
  10.                             string[] datos = line.Split(new char[] { ' ' });
  11.                            if (datos[0] != txtUsuario.Text)
  12.                             {
  13.                                 fileWrite.WriteLine(line);
  14.                             }
  15.  
  16.                         }
  17.                     }
  18.                 }
Lo cual intento leer 2 líneas que tengo introducidas del archivo así:

Código:
Nombre: Bruce
Apellidos: Lee
Pero en txtUsuario.Txt me da el siguiente error:

Código:
Use of unassigned local variable "txtUsuario"
Por lo que no me deja editar los dos campos que tengo introducidos en el archivo.

Agradezco cualquier información adicional.
Me quedé un poco trabado en esta parte.

Gracias.

Saludos.
  #2 (permalink)  
Antiguo 02/09/2015, 16:01
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: [C#] Editar líneas de archivos de texto

Tu código no tiene mucho sentido. txtUsuario es una variable que no tiene ningún valor asignado, como bien te dice el compilador, y no se puede usar.

Además de eso, el tipo string no tiene ninguna propiedad "Text", con lo cuál txtUsuario.Text es inválido.

yo lo que haría es esto:

Código C#:
Ver original
  1. var path = @"C:\\Users\\Usuario\\Desktop\\Textos\\carpetaArchivos\\" + nombreArchivo + ".txt";
  2.  
  3. var nombre = "Nombre: ";
  4. var apellidos = "Apellidos: ";
  5.  
  6. var nuevoNombre = "Juan";
  7. var nuevoApellido = "Perez";
  8.  
  9. var lines = File.ReadAllLines(path);
  10.  
  11. var replaced = lines.Select(x =>
  12. {
  13.     if (x.StartsWith(nombre))
  14.         return nombre + nuevoNombre;
  15.     if (x.StartsWith(apellidos))
  16.         return apellidos + nuevoApellido;
  17.     return x;
  18. });
  19.  
  20. File.WriteAllLines(path, replaced);

Así de simple. Levantás todas las líneas, reemplazás, escribís todas las líneas. Te evitás StreamReaders, StreamWriters y toda la perorata.

Aclaración: puse doble barras en el path porque este foro no hace syntax highlight apropiadamente, pero no es necesario en el código.
  #3 (permalink)  
Antiguo 02/09/2015, 16:33
Avatar de Tropy  
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: [C#] Editar líneas de archivos de texto

Gracias por su respuesta.
Parece funcionar correctamente, y mucho más complejo que lo que yo disponía.

Una pregunta más a poder ser...

¿Cuál es la utilidad de esto?

Código C#:
Ver original
  1. var

Nunca he usado ese pronombre y no se para que se usa y como.
Si pudiera decirme así por encima se lo agradecería.

Saludos.
  #4 (permalink)  
Antiguo 02/09/2015, 17:58
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: [C#] Editar líneas de archivos de texto

Cita:
Iniciado por Tropy Ver Mensaje
mucho más complejo que lo que yo disponía.
Más complejo en qué sentido? yo lo veo muchísimo más simple. Menos clases involucradas, menos código, menos vueltas.

Cita:
Iniciado por Tropy Ver Mensaje
¿Cuál es la utilidad de esto?
es una característica del lenguaje C# que provee inferencia de tipos.

ante esto:

Código C#:
Ver original
  1. String texto = "Hola Mundo";

es inmediatamente obvio, tanto para el compilador como para el desarrollador, que texto es una variable de tipo string, con lo cuál especificar el tipo resulta redundante y puede ser reemplazado por var.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:30.