Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        /// <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);
            }
        }
Beispiel #6
0
 /// <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);
         }
     }
 }
Beispiel #7
0
 /// <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);
 }
Beispiel #8
0
        /// <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("& ", "&amp; ");
            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);
        }