Hex Dump
Keywords: hexdump hex dump ascii
src="c:\autoexec.bat"
trg="c:\temp\autoexec.hex"
fs=FileSize(src)
bb=BinaryAlloc(fs)
BinaryRead(bb,src)
handle=FileOpen(trg,"write")
zerochar=Char2Num("0")
AAAAchar=Char2Num("A")
bytecount=0
outputline=strcat(strfixleft(bytecount,0,8),": ")
asciiline=""
while bytecount< fs
byte=BinaryPeek(bb,bytecount)
asciibyte=Num2Char(byte)
if byte==10 || byte==13 || byte==9 || byte==0 then asciibyte="."
leftnibble= (byte & 240) >> 4
rightnibble = byte & 15
if leftnibble >= 10 then leftchar=Num2Char(leftnibble+AAAAchar-10)
else leftchar=Num2Char(leftnibble+zerochar)
if rightnibble >= 10 then rightchar=Num2Char(rightnibble+AAAAchar-10)
else rightchar=Num2Char(rightnibble+zerochar)
outputline=strcat(outputline,leftchar,rightchar," ")
asciiline=strcat(asciiline,asciibyte)
bytecount=bytecount+1
if (bytecount mod 16) == 0
FileWrite(handle,Strcat(outputline," ",asciiline))
outputline=strcat(strfixleft(bytecount,0,8),": ")
asciiline=""
else
if (bytecount mod 8) == 0
outputline=strcat(outputline,"- ")
asciiline=strcat(asciiline," - ")
endif
endif
endwhile
FileWrite(handle,Strcat(strfix(outputline," ",60)," ",asciiline))
FileClose(handle)
Message("All","Doned")
Article ID: W14394
Filename: Hexdump.txt