Im leyendo el archivo como una secuencia: Stream fin = File.OpenRead(FilePath);
¿Hay alguna manera de cómo podría encontrar y eliminar todos los retornos de carro de esa secuencia de archivos?C# eliminar retornos de carro adicionales de Stream
EDITAR: El objetivo es eliminar un solo retorno de carro \r
y dejar el carro devuelve lo que está con la nueva línea "\r\n"
intacta.
archivo Ejemplo:
The key backed up in this file is:\r
\r\n
pub 2048R/65079BB4 2011-08-01\r
\r\n
Key fingerprint = 2342334234\r
\r\n
uid test\r
\r\n
sub 2048R/0B917D1C 2011-08-01\r
Y el resultado debe ser similar:
The key backed up in this file is:
\r\n
pub 2048R/65079BB4 2011-08-01
\r\n
Key fingerprint = 2342334234
\r\n
uid test
\r\n
sub 2048R/0B917D1C 2011-08-01
Edit2: La solución final lo que se ve trabajando de esta manera:
static private Stream RemoveExtraCarriageReturns(Stream streamIn)
{
StreamReader reader = new StreamReader(streamIn);
string key = reader.ReadToEnd();
string final = key.Replace("\r\r", "\r");
byte[] array = Encoding.ASCII.GetBytes(final);
MemoryStream stream = new MemoryStream(array);
return stream;
}
tomo en el Stream
usa StreamReader
para leerlo en una cadena, luego elimina la e xtra carriage-return y escríbalo nuevamente a Stream
. ¿Mi código se ve bien o debería hacer algo diferente?
se ve bien, aunque probablemente debería establecer la posición de la corriente de retorno a cero en el método para la limpieza de la API. Buena solución para archivos pequeños. –