public string GetString(DAIEbx EbxFile, ref int TabCount, bool bPrintDescriptor = true) { String RetVal = ""; if (Descriptor.FieldName != "array") { if (bPrintDescriptor) { TabCount++; RetVal += DAIEbx.Tabs(TabCount) + "<" + Descriptor.FieldName + ">\n"; TabCount++; } } else { TabCount++; } foreach (DAIField CurField in Fields) { RetVal += CurField.GetString(EbxFile, ref TabCount); } if (Descriptor.FieldName != "array") { if (bPrintDescriptor) { TabCount--; RetVal += DAIEbx.Tabs(TabCount) + "</" + Descriptor.FieldName + ">\n"; TabCount--; } } else { TabCount--; } return(RetVal); }
public string GetString(DAIEbx EbxFile, ref int TabCount) { String RetVal = ""; if (Descriptor.FieldName == "$") { TabCount--; RetVal += ComplexValue.GetString(EbxFile, ref TabCount); TabCount++; return(RetVal); } RetVal += DAIEbx.Tabs(TabCount) + "<" + Descriptor.FieldName + ">"; switch (ValueType) { case DAIFieldType.DAI_Complex: case DAIFieldType.DAI_Array: RetVal += "\n" + ComplexValue.GetString(EbxFile, ref TabCount); RetVal += DAIEbx.Tabs(TabCount) + "</" + Descriptor.FieldName + ">\n"; return(RetVal); case DAIFieldType.DAI_String: RetVal += GetStringValue(); break; case DAIFieldType.DAI_Int: RetVal += GetIntValue().ToString("X8"); break; case DAIFieldType.DAI_UInt: RetVal += GetUIntValue().ToString("X8"); break; case DAIFieldType.DAI_Float: RetVal += GetFloatValue().ToString("F3"); break; case DAIFieldType.DAI_Short: RetVal += GetShortValue().ToString("X4"); break; case DAIFieldType.DAI_UShort: RetVal += GetUShortValue().ToString("X4"); break; case DAIFieldType.DAI_Byte: RetVal += GetByteValue().ToString("X2"); break; case DAIFieldType.DAI_Long: RetVal += GetLongValue().ToString("X16"); break; case DAIFieldType.DAI_LongLong: for (int i = 0; i < Value.Length; i++) { RetVal += Value[i].ToString("X2"); } break; case DAIFieldType.DAI_Enum: RetVal += GetEnumValue(); break; case DAIFieldType.DAI_Guid: { uint UIntValue = GetUIntValue(); if ((UIntValue >> 31) == 1) { /* External Guid */ DAIExternalGuid Guid = EbxFile.ExternalGuids.ElementAt((int)(UIntValue & 0x7fffffff)); RetVal += Guid.ToString(); } else if (UIntValue == 0) { /* NULL Guid */ RetVal += "00"; } else { /* Internal Guid */ byte[] Guid = EbxFile.InternalGuids[(int)(UIntValue - 1)]; for (int i = 0; i < Guid.Length; i++) { RetVal += Guid[i].ToString("X2"); } } } break; } RetVal += "</" + Descriptor.FieldName + ">\n"; return(RetVal); }