Kan inte påstå att det känns så smart, men det borde funka om det inte är våldsamt stora filer:
a.)
Dim bByteArray() As Byte, bNyData() As Byte
Dim iFree As Long
iFree = FreeFile
Open <dinfil> For Binary As #iFree
ReDim bByteArray(1 To LOF(iFree)) As Byte
Get #iFree, , bByteArray 'Läs upp den gamla datan.
Close #iFree
Kill <dinfil> 'Ta bort filen.
Open <dinfil> For Binary As #iFree
ReDim bNyData(21 To UBound(bByteArray)) As Byte
Dim l As Long
For l = 21 To UBound(bByteArray)
bNyData(l) = bByteArray(l) 'Ta bort 20 första.
Next l
Put #iFree, , bNyData 'Skriv ner den nya datan.
Close #iFree
b.)
Dim bByteArray() As Byte
Dim iFree As Long
iFree = FreeFile
Open <dinfil> For Binary As #iFree
ReDim bByteArray(1 To LOF(iFree)) As Byte
Get #iFree, , bByteArray 'Läs upp den gamla datan.
Put #iFree, 1, <20 bytes> 'Skriv över de 20 första byten.
Put #iFree, , bByteArray 'Lägg tillbaks det gamla på slutet.
Close #iFree