Visual Basic.NET - Ayuda para reemplazar una linea completa en un archivo de texto plano.

   
Vista:
Imágen de perfil de Cesar

Ayuda para reemplazar una linea completa en un archivo de texto plano.

Publicado por Cesar (22 intervenciones) el 26/02/2016 02:14:55
Saludos gente del foro, vengo con un problema que espero que me puedan ayudar a resolver!

Resulta que necesito para mi uso personal una aplicación que realice escritura en x archivo y bueno he decidido crearla yo mismo, pero tengo una situación que no me da el conocimiento limitado que tengo para resolver.

Necesito buscar dentro de un archivo de configuración, cierta linea/s del archivo y reemplazarla. Como dato uso un textbox donde coloco alguna palabra de esa linea que quiero escribir y busco en el archivo, hasta ahi estoy con el código, pero al reemplazar solo he logrado reemplazar la palabra que encuentra y yo necesito que la linea que contenga esta palabra, se reemplace por completo por lo que coloque en otro textbox.

Ejemplo:

linea 1 : Hola josé como estas hoy en tu casa?
linea 2 : Hoy es un día soleado y los pájaros cantan...

Busco josé y elimino la linea únicamente y agrego otra en reemplazo sin que quede nada de la anterior ni que modifique la linea que sigue.

Este es el código que he armado por el momento...

1
2
3
4
5
6
7
8
9
10
Try
            Dim texto1 As String = File.ReadAllText(myPath) ' Ruta del Archivo
 
            texto1 = texto1.Replace(TextBox1.Text, TextBox2.Text) ' Texto que se reemplazara.
 
            File.WriteAllText(myPath, texto1) ' Se escribe la situación anterior.
            MsgBox("Datos modificados correctamente", MsgBoxStyle.Information)
        Catch ex As Exception
            MsgBox("Error en la operación!", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "Error : 2054..")
        End Try

Bueno espero que me puedan ayudar y desde ya muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda para reemplazar una linea completa en un archivo de texto plano.

Publicado por omar pcc.nett.2018@hotmail.com (151 intervenciones) el 26/02/2016 04:13:40
lo primero es almacenar todo el texto en una variable

recorer con un for cada linea

al encontrar la palabra almacenar esa line en un textbox
en una variable almacenamos el numero que representa la linea del texto buscado

reemplazamos nuevamente el texto
recorremos el contenido del archivo segun el numero de la linea y guardamos en esa posicion el nuevo texto
guardamos el archivo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cesar

Ayuda para reemplazar una linea completa en un archivo de texto plano.

Publicado por Cesar (22 intervenciones) el 26/02/2016 11:40:21
Claro.. haber me parece que no me explique bien yo.


Lo que no soy capas de hacer es decirle a mi aplicación que trabaje sobre la linea completa! Eso es lo que no me doy cuenta de como hacer.
He buscado en google el reemplazar cadena en txt por numero de linea, pero no me ha ido muy bien en mi búsqueda : / . Algún ejemplo o link a algún ejercicio donde trate el tema me seria de mucha ayuda si alguien me pudiera ayudar.


Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda para reemplazar una linea completa en un archivo de texto plano.

Publicado por Alfredo (11 intervenciones) el 26/02/2016 20:10:42
Utiliza un streamreader, la solucion quedaria mas o menos asi:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Imports System
Imports System.IO
Imports System.Collections
Public Class Form1
   Dim myPath As String
 
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      myPath = Application.StartupPath & "\adr.txt"
      Dim objReader As New StreamReader(myPath)
      Dim sLine As String = ""
      Dim arrText As New ArrayList()
      Do
         sLine = objReader.ReadLine()
         If Not sLine Is Nothing Then
            arrText.Add(sLine)
         End If
      Loop Until sLine Is Nothing
      objReader.Close()
      Dim indice As Integer
      Dim c As Integer
      'Hago los reemplazos necesarios 
      indice = 0
      c = arrText.Count - 1
      For i = 0 To c
         Dim texto1 As String
         sLine = arrText.Item(i)
         texto1 = sLine
         texto1 = texto1.Replace(TextBox1.Text, TextBox2.Text) ' Texto que se reemplazara.
         If texto1 <> sLine Then
            texto1 = sLine.Replace(sLine, TextBox2.Text)
            arrText.Item(i) = texto1
         End If
 
      Next
 
 
 
      'Visualizo  lo que tengo en el arreglo de lineas
      For Each sLine In arrText
         res.Text = res.Text & sLine & vbCrLf  ' res es un textbox multilinea
      Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar