home *** CD-ROM | disk | FTP | other *** search
/ Xentax forum attachments archive / xentax.7z / 12135 / WWF_RAW_FML_python_script.7z / data_op.py < prev    next >
Encoding:
Text File  |  2016-12-20  |  1.2 KB  |  44 lines

  1. def fill_string(string, size):
  2.     assert len(string) <= size
  3.     while len(string) != size:        
  4.         string = "%s\x00" % string
  5.     return string 
  6.  
  7. def string_shortener(string):
  8.     new_string = ""
  9.     for char in string:
  10.         if char == "\x00":
  11.             break
  12.         new_string = "%s%s" % (new_string, char)
  13.     return new_string
  14.  
  15. def is_string_invalid(string):
  16.     for char in string:
  17.         c = ord(char)
  18.         if c in xrange(0, 0x20) or c not in xrange(20, 128):
  19.             return True
  20.     return False
  21.  
  22. def is_data_a_string(data):
  23.     # mat1\x00\x00\x00\x23 -> False
  24.     # ma\x03t -> False
  25.     # lower\x02\x00\x00  -> False
  26.     # \x03\x00\x00 -> False
  27.     # \x00\x00 -> False
  28.     string = string_shortener(data)    
  29.     if not string:
  30.         return False
  31.     for x in xrange(len(string)+1, len(data)):
  32.         if data[x] != '\x00':
  33.             return False
  34.     counter = 0
  35.     for char in string:
  36.         c = ord(char)
  37.         if c in xrange(0, 0x20) or c not in xrange(20, 128):
  38.             break
  39.         else:
  40.             counter += 1
  41.     if counter == len(string):
  42.         return True
  43.     else:
  44.         return False