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.

Este tema le ha gustado a 1 personas