public void read(BinaryReader br, float ver) { TreeNode curnode = tr; Byte depth = br.ReadByte(); Byte predepth = 0; while (depth != 0) { MFString nm = new MFString(""); nm.read(br, ver); TreeNode nd = new TreeNode(nm.value()); if (depth == predepth) { curnode.Parent.Nodes.Add(nd); } else if (depth > predepth) { curnode.Nodes.Add(nd); } else { int dd = predepth - depth; TreeNode snd = curnode.Parent; while (dd > 0) { snd = snd.Parent; dd--; } snd.Nodes.Add(nd); } curnode = nd; predepth = depth; depth = br.ReadByte(); } }
public void LoadFromFile(String filename, TextBox log) { log.Clear(); FileStream sfs = new FileStream(filename, FileMode.Open); BinaryReader fs = new BinaryReader(sfs, Encoding.GetEncoding("Windows-1251")); Objread(Ver, fs, log); String sv = Ver.value(); Dver = float.Parse(sv.Substring(sv.IndexOf(" V") + 2).Replace('.', ',')); if (Dver < 4) { Objread(Date, fs, log); Objread(Date, fs, log); } if (Dver > 3.0) { L1.Add(Graphform); } if (Dver > 3.9) { L1.Add(Arcform); } if (Dver > 4.3) { L1.Add(Thisfarm); L1.Add(Farmid); } if (Dver > 5.1) { L1.Add(Wlist); } Readobjs(L1, fs, log); log.Text += String.Format("\r\nREAD ENDS AT FILEPOS {0:d} ({0:X}) OF {1:d} ({1:X})", sfs.Position, sfs.Length); fs.Close(); sfs.Close(); _label_total = _label_nm = ""; }