El caso es que lo que quiero es, en otro caso, eliminar una sóla línea del archivo. He intentado ir leyendo linea por linea y meterlas en una cadena de texto salvo la que quería eliminar. Luego esa cadena la escribía en un StreamWriter.
Código:
El archivo resultante queda sin la línea en la que estaba la cadena_a_buscar pero algo distinto, porque al volver a abrirlo las longitudes de cada línea (que deberían ser fijas) cambian y no funcionan ciertas operaciones que se hacían con cada una.Dim nombre As String = idArchivo & ".txt" Dim ruta As String = rutaArchivos & "\" & nombre Dim objSR As StreamReader Dim texto As String Dim linea As String Try objSR = New StreamReader(ruta, System.Text.Encoding.Default) Catch ex As FileLoadException Throw New Exception("No se ha podido cargar el archivo " & ruta) Catch ex As FileNotFoundException Throw New Exception("No se ha podido encontrar el archivo " & ruta) Catch ex As Exception Throw New Exception("Error desconocido en " & ruta) End Try linea = objSR.ReadLine Do Until linea = "" If linea.IndexOf("cadena_a_buscar", 12, 12) <> 12 Then texto += linea & vbNewLine End If linea = objSR.ReadLine Loop objSR.Close() Dim objSW As New StreamWriter(ruta, False, System.Text.UTF7Encoding.UTF7) objSW.Write(texto)
¿Dónde está el problema?¿En vbNewLine?¿O en el sistema de codificación?
Muchas gracias.