/** * バイナリログのログID情報を読み込む * */ private MemLogIDs ReadLogIDsBin(UFileStream fs) { MemLogIDs _logIds = new MemLogIDs(); // 件数取得 int size = fs.GetInt32(); for (int i = 0; i < size; i++) { // 1件分のログを取得 MemLogID logId = new MemLogID(); // ID logId.ID = fs.GetUInt32(); // 名前 logId.Name = fs.GetSizeString(); // 色 logId.Color = fs.GetUInt32(); // アイコン画像名 // 画像はアイコン画像を読み込んでから設定する logId.ImageName = fs.GetSizeString(); _logIds.Add(logId); } return(_logIds); }
/** * LogID情報を取得する */ private MemLogIDs GetLogIDsText(StreamReader sr) { MemLogIDs _logIDs = new MemLogIDs(); while (!sr.EndOfStream) { string line = sr.ReadLine().Trim(); Dictionary <string, string> fields = SplitLineStr(line, ',', ':'); if (fields.Count == 0) { continue; } // 終了判定 if (line.Equals("</logid>")) { break; } // レーン情報を取得 MemLogID logID = new MemLogID(); 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)) { logID.ID = id; } break; case "name": logID.Name = kvp.Value; break; case "color": // FF001122 のような16進数文字列を整数値に変換 logID.Color = Convert.ToUInt32(kvp.Value, 16); break; case "image": logID.Image = images.GetImage(kvp.Value); break; } } } _logIDs.Add(logID); } return(_logIDs); }