/// <summary> /// returns the Item with the given Name or null if not found /// </summary> /// <param name="name"></param> /// <returns>the Item</returns> public CpfItem GetSaveItem(string name) { CpfItem res = GetItem(name); if (res == null) { return(new CpfItem()); } else { return(res); } }
void SetItem(uint line, string val) { string name = GetName(line); CpfItem i = dna.GetItem(name); if (i == null) { i = new CpfItem(); i.Name = name; dna.AddItem(i, false); } i.StringValue = val; }
protected override string GetResourceName(SimPe.Data.TypeAlias ta) { if (!this.Processed) { ProcessData(FileDescriptor, Package); } CpfItem item = this.GetItem("name"); if (item == null) { return(base.GetResourceName(ta)); } else { return(item.StringValue); } }
void AddUniversityFields(SimPe.PackedFiles.Wrapper.Cpf cpf) { if (cpf.GetItem("product") == null) { SimPe.PackedFiles.Wrapper.CpfItem i = new SimPe.PackedFiles.Wrapper.CpfItem(); i.Name = "product"; i.UIntegerValue = 1; cpf.AddItem(i); } if (cpf.GetItem("version") == null) { SimPe.PackedFiles.Wrapper.CpfItem i = new SimPe.PackedFiles.Wrapper.CpfItem(); i.Name = "version"; i.UIntegerValue = 2; cpf.AddItem(i); } }
/// <summary> /// Unserializes a BinaryStream into the Attributes of this Instance /// </summary> /// <param name="reader">The Stream that contains the FileData</param> protected override void Unserialize(System.IO.BinaryReader reader) { id = reader.ReadBytes(0x06); if (id[0] != SIGNATURE[0]) { id = SIGNATURE; this.UnserializeXml(reader); return; } items = new CpfItem[reader.ReadUInt32()]; for (int i = 0; i < items.Length; i++) { items[i] = new CpfItem(); items[i].Unserialize(reader); } }
/// <summary> /// Add a new CPF Item /// </summary> /// <param name="item">The item you want to add</param> /// <param name="duplicate">true if you want to add the item even if a similar one already exists</param> public void AddItem(CpfItem item, bool duplicate) { if (item != null) { CpfItem ex = null; if (!duplicate) { ex = this.GetItem(item.Name); } if (ex != null) { ex.Datatype = item.Datatype; ex.Value = item.Value; } else { items = (CpfItem[])Helper.Add(items, item); } } }
/// <summary> /// Add a new CPF Item /// </summary> /// <param name="item">The item you want to add</param> public void AddItem(CpfItem item) { AddItem(item, true); }
/// <summary> /// Unserializes a BinaryStream into the Attributes of this Instance /// </summary> /// <param name="reader">The Stream that contains the FileData</param> protected void UnserializeXml(System.IO.BinaryReader reader) { reader.BaseStream.Seek(0, System.IO.SeekOrigin.Begin); System.IO.StreamReader sr = new System.IO.StreamReader(reader.BaseStream); string s = sr.ReadToEnd(); s = s.Replace("& ", "& "); System.IO.StringReader strr = new System.IO.StringReader(s); System.Xml.XmlDocument xmlfile = new XmlDocument(); xmlfile.Load(strr); XmlNodeList XMLData = xmlfile.GetElementsByTagName("cGZPropertySetString"); ArrayList list = new ArrayList(); //Process all Root Node Entries for (int i = 0; i < XMLData.Count; i++) { XmlNode node = XMLData.Item(i); foreach (XmlNode subnode in node) { CpfItem item = new CpfItem(); if (subnode.LocalName.Trim().ToLower() == "anyuint32") { item.Datatype = Data.MetaData.DataTypes.dtUInteger; if (subnode.InnerText.IndexOf("-") != -1) { item.UIntegerValue = (uint)Convert.ToInt32(subnode.InnerText); } else if (subnode.InnerText.IndexOf("0x") == -1) { item.UIntegerValue = Convert.ToUInt32(subnode.InnerText); } else { item.UIntegerValue = Convert.ToUInt32(subnode.InnerText, 16); } } else if ((subnode.LocalName.Trim().ToLower() == "anyint32") || (subnode.LocalName.Trim().ToLower() == "anysint32")) { item.Datatype = Data.MetaData.DataTypes.dtInteger; if (subnode.InnerText.IndexOf("0x") == -1) { item.IntegerValue = Convert.ToInt32(subnode.InnerText); } else { item.IntegerValue = Convert.ToInt32(subnode.InnerText, 16); } } else if (subnode.LocalName.Trim().ToLower() == "anystring") { item.Datatype = Data.MetaData.DataTypes.dtString; item.StringValue = subnode.InnerText; } else if (subnode.LocalName.Trim().ToLower() == "anyfloat32") { item.Datatype = Data.MetaData.DataTypes.dtSingle; item.SingleValue = Convert.ToSingle(subnode.InnerText, System.Globalization.CultureInfo.InvariantCulture); } else if (subnode.LocalName.Trim().ToLower() == "anyboolean") { item.Datatype = Data.MetaData.DataTypes.dtBoolean; if (subnode.InnerText.Trim().ToLower() == "true") { item.BooleanValue = true; } else if (subnode.InnerText.Trim().ToLower() == "false") { item.BooleanValue = false; } else { item.BooleanValue = (Convert.ToInt32(subnode.InnerText) != 0); } } else if (subnode.LocalName.Trim().ToLower() == "#comment") { continue; } /*else * { * item.Datatype = (Data.MetaData.DataTypes)Convert.ToUInt32(subnode.Attributes["type"].Value, 16); * }*/ try { item.Name = subnode.Attributes["key"].Value; list.Add(item); } catch {} } } //for i items = new CpfItem[list.Count]; list.CopyTo(items); }