research/hhe/dump-strings
Simon Howard c198ef5618 Rename directory to "hhe". Move output data to v1.0 directory. Add
testing notes.

Subversion-branch: /research
Subversion-revision: 1868
2010-02-09 19:01:45 +00:00

75 lines
1.6 KiB
Ruby
Executable file

#!/usr/bin/env ruby
require "json"
def read_block(file)
result = ""
4.times do
break if file.eof?
c = file.readchar
result += sprintf("%c", c)
end
end_index = result.index(0)
if end_index
result = result[0, end_index]
end
result
end
def valid_block?(block)
for i in 0...block.length
c = block[i, 1]
if c !~ /[a-zA-Z0-9_= :\\\'\"\-\,\.\(\)\[\]\%\!\n\?\<\>\%\#\@\/\&]/
return false
end
end
true
end
File.open(ARGV[0]) do |file|
current_str = ""
file.seek(554068 )
offset = 0
start_offset = nil
until file.eof?
block = read_block(file)
if valid_block?(block)
if start_offset == nil
start_offset = offset
end
current_str += block
# End of string?
if block.length < 4
if current_str.length >= 4
puts " { #{start_offset}, #{current_str.to_json} },"
end
current_str = ""
start_offset = nil
end
else
# Invalid string; start again
# if current_str.length >= 4
# puts "INVALID: #{current_str + block}"
# end
current_str = ""
end
offset += 4
end
end