Пример #1
0
 public void DeleteTag(string tag)
 {
     for (int i = tag_list_.Count - 1; i >= 0; --i)
     {
         if (IJStringUtil.CompareString(tag_list_[i].GetRawTag(), tag))
         {
             tag_list_.RemoveAt(i);
         }
     }
 }
Пример #2
0
 public bool IsIncludeAndLocked(string tag)
 {
     for (int i = 0; i < tag_list_.Count; ++i)
     {
         if (IJStringUtil.CompareString(tag, tag_list_[i].GetRawTag()) && tag_list_[i].IsLock())
         {
             return(true);
         }
     }
     return(false);
 }
Пример #3
0
 private static bool IsExclusion(string str, string[] exclusion_tag)
 {
     for (int i = 0; i < exclusion_tag.Length; ++i)
     {
         if (IJStringUtil.CompareString(str, exclusion_tag[i]))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #4
0
        public IFilterManager GetFilter()
        {
            IFilterManager filter;

            if (is_using_filter && filter_filename != "" && File.Exists(filter_filename))
            {
                try
                {
                    string first_line = IJFile.ReadFirstLineUTF8(filter_filename);

                    // フィルター書式のバージョンを調べる(ファイルの最初の行が「version=2」であるかどうか)
                    bool is_version2 = IJStringUtil.CompareString(first_line, RootFilter.version_indicator);

                    string str;

                    if (is_version2)
                    {
                        // 新フィルターはUTF-8で読み込む
                        string str_with_version = IJFile.ReadUTF8(filter_filename);

                        // 先頭の「version=2」を削除する
                        int start_index = str_with_version.IndexOfAny(new char[] { '\r', '\n' }, 0);
                        if (start_index + 1 <= str_with_version.Length - 1)
                        {
                            str = str_with_version.Substring(start_index + 1);
                        }
                        else
                        {
                            str = string.Empty;
                        }

                        filter = GetFilter2(str);
                    }
                    else
                    {
                        str    = IJFile.Read(filter_filename);
                        filter = GetFilter1(str);
                    }
                }
                catch (Exception)
                {
                    throw new FormatException("フィルターの書式が間違えています。");
                }
                return(filter);
            }
            return(new Filter(is_output_filtered_video));
        }
Пример #5
0
 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]);
         }
     }
 }
Пример #6
0
        // タグリストから 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(""); // それでも見つからないときは空文字を返す
        }