private static frame_s read_frame(StreamReader file) { frame_s fr = new frame_s(); fr.buoys = new List<buoy_s>(); // name string line = file.ReadLine(); string[] tokens = line.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); fr.name = tokens[1]; // id line = file.ReadLine(); tokens = line.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries); if (!int.TryParse(tokens[1], out fr.id)) { throw new Exception("Error parsing frame id"); } // buoys while (!file.EndOfStream) { line = file.ReadLine(); if (line.Contains("<buoy>")) { fr.buoys.Add(read_buoy(file)); } if (line.Contains("<end_frame>")) { return fr; } } throw new Exception("Error reading frame"); }
private static void write_frame(StreamWriter file, frame_s frame, int prev) { string pre = ""; for (int i = 0; i < prev; i++) { pre += " "; } file.WriteLine(pre + "<frame>"); file.WriteLine(pre + "name: " + frame.name); file.WriteLine(pre + "id: " + frame.id.ToString()); foreach (buoy_s buoy in frame.buoys) { write_buoy(file, buoy, prev + 2); } file.WriteLine(pre + "<end_frame>"); }