def _formatValue(self, item): m = (item.header.valuetype & 0xF0) << 8 if m == SDB_TAG_TYPES.TAG_TYPE_STRINGREF: ref = item.value.reference return self._strindex.get_string(ref) else: return formatValue(item)
def dump_item(item, indent=""): if isBadItem(item): return v = item.value if v.vsHasField("children"): yield u"{indent:s}<{tag:s}>".format( indent=indent, tag=getTagName(item.header)) for _, c in v.children: if isBadItem(c): continue for l in dump_item(c, indent + " "): yield l yield u"{indent:s}</{tag:s}>".format( indent=indent, tag=getTagName(item.header)) else: yield u"{indent:s}<{tag:s} type='{type_:s}'>{data:s}</{tag:s}>".format( indent=indent, type_=formatValueType(item), data=formatValue(item), tag=getTagName(item.header))
def _formatValue(self, item): m = (item.header.valuetype & 0xF0) << 8 if m == SDB_TAG_TYPES.TAG_TYPE_STRINGREF: ref = item.value.reference try: return self._index.get_string(ref) except IndexError: return "UNRESOLVED_STRINGREF:" + hex(ref) else: return formatValue(item)
def _formatValue(self, item): m = (item.header.valuetype & 0xF0) << 8 if m == SDB_TAG_TYPES.TAG_TYPE_STRINGREF: ref = item.value.reference if self._strindex is None: raise RuntimeError("strings not indexed") if ref not in self._strindex: return "UNRESOLVED_STRINGREF:" + hex(ref) return self._strindex[ref].value.value else: return formatValue(item)
def dump_item(item, indent=""): if isBadItem(item): return v = item.value if v.vsHasField("children"): yield u"{indent:s}<{tag:s}>".format(indent=indent, tag=str(getTagName(item.header))) for _, c in v.children: if isBadItem(c): continue for l in dump_item(c, indent + " "): yield l yield u"{indent:s}</{tag:s}>".format(indent=indent, tag=str(getTagName(item.header))) else: yield u"{indent:s}<{tag:s} type='{type_:s}'>{data:s}</{tag:s}>".format( indent=indent, type_=str(formatValueType(item)), data=formatValue(item), tag=str(getTagName(item.header)))