Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: arts en 27 Mayo 2013, 17:26 pm



Título: Como sobreescribir un txt en visual basic .net
Publicado por: arts en 27 Mayo 2013, 17:26 pm
Muy buenas a todos. Quería saber como modificar una línea de un txt en visual basic .net. Hasta ahora logro guardar los datos de mis cajas de texto en un array, ese array está por líneas y mando la linea a una función que se coloca en el archivo o eso creo sobre la línea a modificar sobre la cual según tengo entendido debería sobreescribir dicha línea. Sin embargo me lo escribe al final del txt y no sobre la línea que le paso.

Linea_ac es la linea que quiero cambiar.

Código:
 Private Sub Sobreescribir_linea_en_Archivo(ByVal linea_ac As Short)

        Using ARCHIVO As New System.IO.StreamWriter("F:\alumnos.txt", True) 'cambiar la ruta si es necesario
            For J = 0 To 8
                If J = 8 Then
                    ARCHIVO.Write(TB_A(linea_ac, J))
                Else
                    ARCHIVO.Write(TB_A(linea_ac, J) & ";")
                End If
            Next
        End Using

    End Sub

A ver si alguien me dice que me falta o como arreglar esto ;)


Título: Re: Como sobreescribir un txt en visual basic .net
Publicado por: Eleкtro en 27 Mayo 2013, 20:08 pm
Aquí tienes mi versión:

Código
  1. #Region " Replace TextFile Line "
  2.  
  3.    ' [ Replace TextFile Line Function ]
  4.    '
  5.    ' // By Elektro H@cker
  6.    '
  7.    ' Examples :
  8.    ' Replace_TextFile_Line("C:\File.txt", 1, "Hello world!")
  9.    ' Replace_TextFile_Line("C:\File.txt", 3, True)
  10.    ' If Replace_TextFile_Line("C:\File.txt", 5, "Elektro H@cker") Then ...
  11.  
  12.    Private Function Replace_TextFile_Line(ByVal Text_File As String, _
  13.                                           ByVal Line_Number As Int64, _
  14.                                           ByVal New_Text As Object) As Boolean
  15.  
  16.        Line_Number -= 1 : If Line_Number < 0 _
  17.        Then Throw New Exception("Line Number can't be a negative value")
  18.  
  19.        Try
  20.            Dim Lines_Array() As String = IO.File.ReadAllLines(Text_File)
  21.            Lines_Array(Line_Number) = New_Text
  22.            IO.File.WriteAllLines(Text_File, Lines_Array)
  23.            Return True
  24.        Catch ex As Exception
  25.            MsgBox(ex.Message)
  26.            Return False
  27.        End Try
  28.  
  29.    End Function
  30.  
  31. #End Region

Saludos.