public void Add(TagSet tag_set) { for (int i = 0; i < tag_set.tag_list_.Count; ++i) { int j; for (j = 0; j < tag_list_.Count; ++j) { if (IJStringUtil.CompareString(tag_list_[j].GetRawTag(), tag_set.tag_list_[i].GetRawTag())) { break; } } if (j >= tag_list_.Count) { tag_list_.Add(tag_set.tag_list_[i]); } } }
// タグリストから P名を推定する public static string GetPname(TagSet tag_set, out int index) { if (pname_list_ == null) // 初回にリストをロードする { if (File.Exists("pnamelist.txt")) { pname_list_ = IJStringUtil.SplitWithCRLF(IJFile.Read("pnamelist.txt")); } else { pname_list_ = new string[0]; } } for (int i = 0; i < tag_set.tag_list_.Count; ++i) { for (int j = 0; j < pname_list_.Length; ++j) { if (IJStringUtil.CompareString(tag_set.tag_list_[i].GetRawTag(), pname_list_[j])) { index = i; return(pname_list_[j]); } } } // リストから見つからない場合は後ろにPのついたタグを探す for (int i = 0; i < tag_set.tag_list_.Count; ++i) { if (tag_set.tag_list_[i].GetRawTag().EndsWith("P", StringComparison.InvariantCultureIgnoreCase) || tag_set.tag_list_[i].GetRawTag().EndsWith("P", StringComparison.InvariantCultureIgnoreCase)) { index = i; return(tag_set.tag_list_[i].GetRawTag()); } } index = -1; return(""); // それでも見つからないときは空文字を返す }