public int readData(BinaryReader reader, List <string> dictionary, XmlNode element, XmlDocument xDoc, int offset, DataDescriptor dataDescriptor) { int lengthInBytes = dataDescriptor.end - offset; if (dataDescriptor.type == 0x0) { // Element readElement(reader, element, xDoc, dictionary); } else if (dataDescriptor.type == 0x1) { // String element.InnerText = readString(reader, lengthInBytes); } else if (dataDescriptor.type == 0x2) { // Integer number element.InnerText = "\t" + readNumber(reader, lengthInBytes) + "\t"; } else if (dataDescriptor.type == 0x3) { // Floats string str = readFloats(reader, lengthInBytes); string[] strData = str.Split(' '); if (strData.Length == 12) { XmlNode row0 = xDoc.CreateElement("row0"); XmlNode row1 = xDoc.CreateElement("row1"); XmlNode row2 = xDoc.CreateElement("row2"); XmlNode row3 = xDoc.CreateElement("row3"); row0.InnerText = "\t" + strData[0] + " " + strData[1] + " " + strData[2] + "\t"; row1.InnerText = "\t" + strData[3] + " " + strData[4] + " " + strData[5] + "\t"; row2.InnerText = "\t" + strData[6] + " " + strData[7] + " " + strData[8] + "\t"; row3.InnerText = "\t" + strData[9] + " " + strData[10] + " " + strData[11] + "\t"; element.AppendChild(row0); element.AppendChild(row1); element.AppendChild(row2); element.AppendChild(row3); } else { element.InnerText = "\t" + str + "\t"; } } else if (dataDescriptor.type == 0x4) { // Boolean if (readBoolean(reader, lengthInBytes)) { element.InnerText = "\ttrue\t"; } else { element.InnerText = "\tfalse\t"; } } else if (dataDescriptor.type == 0x5) { // Base64 element.InnerText = "\t" + readBase64(reader, lengthInBytes) + "\t"; } else { throw new System.ArgumentException("Unknown type of \"" + element.Name + ": " + dataDescriptor.ToString() + " " + readAndToHex(reader, lengthInBytes)); } return(dataDescriptor.end); }
public int readData(BinaryReader reader, List<string> dictionary, XmlNode element, XmlDocument xDoc, int offset, DataDescriptor dataDescriptor) { int lengthInBytes = dataDescriptor.end - offset; if (dataDescriptor.type == 0x0) { // Element readElement(reader, element, xDoc, dictionary); } else if (dataDescriptor.type == 0x1) { // String element.InnerText = readString(reader, lengthInBytes); } else if (dataDescriptor.type == 0x2) { // Integer number element.InnerText = "\t" + readNumber(reader, lengthInBytes) + "\t"; } else if (dataDescriptor.type == 0x3) { // Floats string str = readFloats(reader, lengthInBytes); string[] strData = str.Split(' '); if (strData.Length == 12) { XmlNode row0 = xDoc.CreateElement("row0"); XmlNode row1 = xDoc.CreateElement("row1"); XmlNode row2 = xDoc.CreateElement("row2"); XmlNode row3 = xDoc.CreateElement("row3"); row0.InnerText = "\t" + strData[0] + " " + strData[1] + " " + strData[2] + "\t"; row1.InnerText = "\t" + strData[3] + " " + strData[4] + " " + strData[5] + "\t"; row2.InnerText = "\t" + strData[6] + " " + strData[7] + " " + strData[8] + "\t"; row3.InnerText = "\t" + strData[9] + " " + strData[10] + " " + strData[11] + "\t"; element.AppendChild(row0); element.AppendChild(row1); element.AppendChild(row2); element.AppendChild(row3); } else { element.InnerText = "\t" + str + "\t"; } } else if (dataDescriptor.type == 0x4) { // Boolean if (readBoolean(reader, lengthInBytes)) { element.InnerText = "\ttrue\t"; } else { element.InnerText = "\tfalse\t"; } } else if (dataDescriptor.type == 0x5) { // Base64 element.InnerText = "\t" + readBase64(reader, lengthInBytes) + "\t"; } else { throw new System.ArgumentException("Unknown type of \"" + element.Name + ": " + dataDescriptor.ToString() + " " + readAndToHex(reader, lengthInBytes)); } return dataDescriptor.end; }