private void load_item() { if (Directory.Exists(recipe_fname_)) { var item = new 料理情報(); using (var sr = new StreamReader(recipe_fname_)) { while ((item = 料理情報.ReadItem(sr)) != null) { my_list.Add(item); } } } }
public static 料理情報 ReadItem(System.IO.StreamReader sr) { 料理情報 r = new 料理情報(); string buf = sr.ReadLine(); if (buf == null) // データファイル終端検出時はnullを返しておく { return(null); } // アイテム検索 while ((buf = sr.ReadLine()) != null) { if (buf == null) { throw new ArgumentException(); } if (buf.StartsWith("[ITEM:")) { break; } } // nameエントリ読み出し buf = sr.ReadLine(); // =name=読み捨て r.料理名 = read_entry(sr, "=time="); r.調理時間 = Convert.ToDecimal(read_entry(sr, "=cost=")); r.費用 = Convert.ToDecimal(read_entry(sr, "=kcal=")); r.kcal = Convert.ToDecimal(read_entry(sr, "=genre=")); r.ジャンル = read_entry(sr, "=type="); r.形式 = read_entry(sr, "=difficulty="); r.難易度 = read_entry(sr, "=ingredients="); r.材料 = read_multiline_entry(sr, "=season="); r.シーズン = read_multiline_entry(sr, "<recipe>"); r.レシピ = read_multiline_entry(sr, "<kitchenware>"); r.調理器具 = read_multiline_entry(sr, "<EOI>"); return(r); }
private void 料理登録ボタン_Click(object sender, EventArgs e) { using (var sw = new StreamWriter(recipe_fname_, true, Encoding.GetEncoding("Shift_JIS"))) { var item = new 料理情報(); item.料理名 = 料理名ボックス.Text; item.レシピ = レシピボックス.Text; item.材料 = 材料ボックス.Text; item.ジャンル = 料理ジャンルボックス.Text; item.形式 = ジャンルボックス.Text; item.シーズン = 旬ボックス.Text; item.調理器具 = 調理器具ボックス.Text; item.調理時間 = 調理時間ボックス.Value; item.費用 = 費用ボックス.Value; item.kcal = kcalボックス.Value; item.難易度 = 難易度ボックス.Text; my_list.Add(item); item.ItemNo = my_list.Count; item.WriteItem(sw); } }