示例#1
0
        public Qual ParseQual(string code)
        {
            Qual qual = new Qual();

            code = code.Trim();
            code = code.Replace("\\", "").Replace("\"", "");
            code = code.Replace(">", "");
            string[] parts = code.Split(' ');
            qual.type  = parts[1].Split('=')[1].ToString();
            qual.value = parts[2].Split('=')[1].ToString();
            return(qual);
        }
示例#2
0
        public DataFile Import(string file)
        {
            string   line;
            DataFile dfile = new DataFile();
            int      i     = 0;

            using (StreamReader reader = new StreamReader(file))
            {
                while ((line = reader.ReadLine()) != null)
                {
                    //Headeriu skaitymas
                    if (line.Contains("<?xml") && line != null)
                    {
                        while (!(line = reader.ReadLine()).Contains("<version>") && line != null)
                        {
                            dfile.Header.Add(line);
                        }
                    }
                    //Versijos skaitymas
                    if (line.Contains("<version>") && line != null)
                    {
                        while ((line = reader.ReadLine()) != null)
                        {
                            i++;
                            if (line.Contains("</version>"))
                            {
                                break;
                            }
                            dfile.Version.Add(line);
                        }
                    }

                    //Ccf skaitymas
                    if (line.Contains("<ccf>") && line != null)
                    {
                        while ((line = reader.ReadLine()) != null)
                        {
                            if (line.Contains("</ccf>"))
                            {
                                break;
                            }
                            if (line.Contains("sync"))
                            {
                                dfile.ccf.syncs.Add(ParseCcfSync(line));
                            }
                            if (line.Contains("source"))
                            {
                                dfile.ccf.sources.Add(ParseCcfSource(line));
                            }
                        }
                    }
                    //post_update skaitymas
                    if (line.Contains("<post_update>") && line != null)
                    {
                        while ((line = reader.ReadLine()) != null)
                        {
                            if (line.Contains("</post_update>"))
                            {
                                break;
                            }

                            dfile.postUpdate.Add(line);
                        }
                    }
                    //vdf skaitymas

                    /*
                     * if (line.Contains("<vehice_data_file>"))
                     * {
                     *  while ((line = reader.ReadLine()) != null)
                     *  {
                     *
                     *      if (line.Contains("<vdf_block>"))
                     *          continue;
                     *      if (line.Contains("</vdf_block>"))
                     *          continue;
                     *      if (line.Contains("</vehice_data_file>"))
                     *          break;
                     *      if(line.Contains("<block_order"))
                     *          dfile.vdf.Add(ParseVDF(line));
                     *  }
                     * }*/

                    //bloku skaitymas
                    if (line.Contains("<block"))
                    {
                        Block blk = new Block();
                        blk = ParseBlock(line);

                        while ((line = reader.ReadLine()) != null)
                        {
                            if (line.Contains("</block>"))
                            {
                                dfile.blocks.Add(blk);
                                break;
                            }


                            if (line.Contains("<name>"))
                            {
                                blk.nameParam = ParseVersion(line).Trim();
                            }
                            //adresu skaitymas
                            if (line.Contains("<address"))
                            {
                                bool    endCycle = false;
                                Address adr      = new Address();
                                adr = ParseAddress(line);
                                while ((line = reader.ReadLine()) != null)
                                {
                                    if (line.Contains("</address>") || endCycle)
                                    {
                                        blk.Addresses.Add(adr);
                                        break;
                                    }
                                    //adresu qualifieriu skaitymas
                                    if (line.Contains("<qualifier "))
                                    {
                                        Qualifier qualifier = new Qualifier();
                                        qualifier = ParseQualifier(line);

                                        while ((line = reader.ReadLine()) != null)
                                        {
                                            if (line.Contains("</qualifier>"))
                                            {
                                                adr.qualifiers.Add(qualifier);
                                                break;
                                            }
                                            else if (line.Contains("</address>"))
                                            {
                                                adr.qualifiers.Add(qualifier);
                                                blk.Addresses.Add(adr);
                                                endCycle = true;
                                                break;
                                            }
                                            // adresu qualifieriu qualu skaitymas
                                            if (line.Contains("<qual "))
                                            {
                                                Qual qual = new Qual();
                                                qual = ParseQual(line);
                                                qualifier.qual.Add(qual);
                                            }
                                        }
                                    }
                                }
                            }

                            if (line.Contains("<block_data>"))
                            {
                                while ((line = reader.ReadLine()) != null)
                                {
                                    BlockData blkd = new BlockData();
                                    if (line.Contains("</block_data>"))
                                    {
                                        break;
                                    }
                                    if (line.Contains("<data"))
                                    {
                                        blk.block_data.Add(ParseBlockData(line));
                                    }
                                }
                            }

                            //grupiu skaitymas
                            if (line.Contains("<group"))
                            {
                                Classes.Group grp = new Classes.Group();
                                grp = ParseGroup(line);
                                while ((line = reader.ReadLine()) != null)
                                {
                                    if (line.Contains("</group>"))
                                    {
                                        blk.groups.Add(grp);
                                        break;
                                    }

                                    if (line.Contains("<title"))
                                    {
                                        grp.title = reader.ReadLine();
                                        continue;
                                    }
                                    //parametru skaitymas
                                    if (line.Contains("<parameter"))
                                    {
                                        Parameter prm = new Parameter();
                                        prm = ParseParameter(line);

                                        while ((line = reader.ReadLine()) != null)
                                        {
                                            if (line.Contains("</parameter>"))
                                            {
                                                grp.parameters.Add(prm);
                                                break;
                                            }
                                            //kategoriju skaitymas
                                            if (line.Contains("<category"))
                                            {
                                                Category ctg = new Category();
                                                ctg          = ParseCategory(line);
                                                prm.category = ctg;
                                            }
                                            //opciju skaitymas
                                            if (line.Contains("<option") && !line.Contains("<!--"))
                                            {
                                                Option opt = new Option();
                                                opt = ParseOption(line);
                                                prm.options.Add(opt);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }


            return(dfile);
        }