Covert Files to Binary Strings

Started by kevin, July 20, 2003, 02:59:29 AM

Previous topic - Next topic

kevin


Rem Project: File To Bin String Bank By Kevin Picone
Rem Created: 20/07/2003 5:16:54 PM

Rem ***** Main Source File *****
File$="c:\HelloWorld.txt"
DestFile$="c:\HelloWorld2.txt"

print file$
Bank=CreateBinStringBank(file$)

` read elements from binary String memblock
size=get memblock size(bank)
for lp=0 to (size/8)-1
  Binary$=ReadBinStringByte(Bank,lp)
  c=BinString_To_Dec(binary$)
  ` screen for end of line characters
  if c=10 or c=13
    if c=13 then print
  else
    print chr$(c);
 endif
next lp
print
print
' Size of Binary String Memblock

print "Size Original File:";file size(file$)
print "Size of Binary Sting Memblock:";Size


` Save the bank as a file
SaveBinStringBank(DestFile$,Bank)
print "Done - Any Key To Quit"
wait key
delete memblock bank

end



Function ReadBinStringByte(Bank,Address)
 address=address * 8
 r$=""
 size=get memblock size(bank)
 if address<size
   for lp=0 to 7
      r$=r$+chr$(memblock byte(bank,address))
      inc address
   next lp
 endif
EndFunction r$



Function CreateBinStringBank(File$)
r$=""
Bank=Get_Free_bank()
if bank>-1
  if file exist(file$)
     open to read 1,file$
      s=file size(file$)
      banksize=s*8
       make memblock Bank,banksize
        Address=0
       for lp=1 to s
        read byte 1,c
        r$=right$(bin$(c),8)
        for lp2=1 to 8
           write memblock byte bank,address,asc(mid$(r$,lp2))
           inc Address
        next lp2
     next lp
  close file 1
  endif
endif
endFunction Bank


Function SaveBinStringBank(File$,Bank)
     if file exist(file$) then delete file file$
     open to write 1,file$
        size=get memblock size(bank)-1
        for lp =0 to size
           write byte 1,memblock byte(1,lp)
        next lp
     close file 1
EndFunction



Function Get_Free_bank()
BankID=-1
For lp=1 to 255
  if memblock exist(lp)=0 then BankID=lp:exit
next lp
EndFunction BankId



Function BinString_To_Dec(binary$)
  if left$(binary$,1)="%" then binary$=right$(binary$,len(binary$)-1)
  result=0
  For lp=len(binary$) to 1 step -1
    result=result+(val( mid$(binary$,lp) )*(2^( len(binary$) -lp)))
  next lp
EndFunction result