Ejemplo n.º 1
0
        /**
         * Lane情報を取得する
         * <lane>~</lane> の中を行をすべて取得する
         */
        private Lanes GetLanesText(StreamReader sr)
        {
            Lanes _lanes = new Lanes();

            while (!sr.EndOfStream)
            {
                string line = sr.ReadLine().Trim();
                Dictionary <string, string> fields = SplitLineStr(line);

                if (fields.Count == 0)
                {
                    continue;
                }
                // 終了判定
                if (line.Equals("</lane>"))
                {
                    break;
                }

                // レーン情報を取得
                Lane lane = new Lane();

                foreach (KeyValuePair <string, string> kvp in fields)
                {
                    // keyとvalueに分割
                    if (kvp.Value != null)
                    {
                        switch (kvp.Key)
                        {
                        case "id":
                            UInt32 id;
                            if (UInt32.TryParse(kvp.Value, out id))
                            {
                                lane.ID = id;
                            }
                            break;

                        case "name":
                            lane.Name = kvp.Value;
                            break;

                        case "color":
                            try {
                                // FF001122 のような16進数文字列を整数値に変換
                                lane.Color = Convert.ToUInt32(kvp.Value, 16);
                            }
                            catch (Exception e)
                            {
                                lane.Color = 0;
                            }
                            break;
                        }
                    }
                }
                _lanes.Add(lane);
            }
            return(_lanes);
        }
Ejemplo n.º 2
0
 // レーン情報を追加
 public void AddLane(UInt32 id, string name, UInt32 color)
 {
     lanes.Add(id, name, color);
 }