Ejercicio
Conversor de archivos
Objetivo
Crear un programa para "invertir" un archivo: crear un archivo con el mismo nombre que termine en ".inv" y que contenga los mismos bytes que el archivo original pero en orden inverso (el primer byte será el último, el segundo será el penúltimo, y así sucesivamente, hasta el último byte del archivo original, que debería aparecer en la primera posición del archivo resultante).
Debe entregar solo el archivo ".cs", que debe contener un comentario con su nombre.
Sugerencia: Para conocer la longitud de un archivo binario (BinaryReader), puede usar "myFile.BaseStream.Length" y puede saltar a una posición diferente con "myFile.BaseStream.Seek(4, SeekOrigin.Current);"
Las posiciones iniciales que podemos utilizar son: SeekOrigin.Begin, SeekOrigin.Current- o SeekOrigin.End
Código
Imports System
Imports System.IO
Public Class FileInverter
Public Shared Sub Main()
Dim inFile As BinaryReader = New BinaryReader(File.Open("hola.txt", FileMode.Open))
Dim outFile As BinaryWriter = New BinaryWriter(File.Open("hola.txt.inv", FileMode.Create))
Dim filesize As Long = inFile.BaseStream.Length
For i As Long = filesize - 1 To 0
inFile.BaseStream.Seek(i, SeekOrigin.Begin)
Dim b As Byte = inFile.ReadByte()
outFile.Write(b)
Next
inFile.Close()
outFile.Close()
End Sub
End Class