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); }
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); }