-2

I need example in code, how to byte flip whole binary file. VB.NET

Example

02 00 0D 78 10 20 40 80 F1 F2 F4 F8 1F 2F 4F 8F

Flip Operation

00 02 78 0D 20 10 80 40 F2 F1 F8 F4 2F 1F 8F 4F 

Whole, binary file using OpenFileDialog (OFD)

2 Answers2

0

You just need to loop all items of the array and swap each bytes.

Dim bytes() As Byte = {&H2, &H0, &HD, &H78, &H10, &H20, &H40, &H80, &HF1, &HF2, &HF4, &HF8, &H1F, &H2F, &H4F, &H8F}

For i As Integer = 0 To bytes.Length - 1 Step 2
    bytes(i) = bytes(i) Xor bytes(i + 1)
    bytes(i + 1) = bytes(i + 1) Xor bytes(i)
    bytes(i) = bytes(i) Xor bytes(i + 1)
Next

If you want, use a temp variable

For i As Integer = 0 To bytes.Length - 1 Step 2
    Dim tempByte As Byte = bytes(i)
    bytes(i) = bytes(i+1)
    bytes(i + 1) = tempByte
Next
the_lotus
  • 12,668
  • 3
  • 36
  • 53
0

erm, you could write as you go, something like,

Dim file = dialog.FileName

Using output = New BinaryWriter(New FileStream( _
                   file, _
                   FileMode.Append, _
                   FileAccess.Write, _
                   FileShare.Read))
    Using input = New BinaryReader(New FileStream( _
                       file, _
                       FileMode.Open, _
                       FileAccess.Read, _
                       FileShare.ReadWrite))

        Dim bufferLength = 2
        While bufferLength = 2
            Dim buffer = input.ReadBytes(2)
            bufferLength = buffer.Length
            If bufferLength = 2 Then
                output.Write(buffer(1))
                output.Write(buffer(0))
            Else If bufferLength = 1 Then
                output.Write(buffer(0))
            End If
        End While

    End Using
End Using 
Jodrell
  • 34,946
  • 5
  • 87
  • 124