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.
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 ;)
Aquí tienes mi versión:
#Region " Replace TextFile Line "
' [ Replace TextFile Line Function ]
'
' // By Elektro H@cker
'
' Examples :
' Replace_TextFile_Line("C:\File.txt", 1, "Hello world!")
' Replace_TextFile_Line("C:\File.txt", 3, True)
' If Replace_TextFile_Line("C:\File.txt", 5, "Elektro H@cker") Then ...
Private Function Replace_TextFile_Line(ByVal Text_File As String, _
ByVal Line_Number As Int64, _
ByVal New_Text As Object) As Boolean
Line_Number -= 1 : If Line_Number < 0 _
Then Throw New Exception("Line Number can't be a negative value")
Try
Dim Lines_Array() As String = IO.File.ReadAllLines(Text_File)
Lines_Array(Line_Number) = New_Text
IO.File.WriteAllLines(Text_File, Lines_Array)
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End Function
#End Region
Saludos.