Example #1
0
        /// <summary>
        /// 定跡を書き出すぜ☆(^▽^)
        /// </summary>
        public static void Flush_Joseki_1file(Joseki jo, string file, StringBuilder syuturyoku)
        {
            if (!File.Exists(file))
            {
                // 定跡ファイルが無ければ作成します。
                FileStream fs = File.Create(file);
                fs.Close(); // File.Create したあとは、必ず Close() しないと、ロックがかかったままになる☆(^▽^)
            }

            syuturyoku.Append(".");
            {
                var msg = syuturyoku.ToString();
                syuturyoku.Clear();
                Logger.Flush(msg);
            }

            // 定跡の文字列化☆
            string josekiStr = jo.ToString(Option_Application.Optionlist.USI);

            syuturyoku.Append(".");
            {
                var msg = syuturyoku.ToString();
                syuturyoku.Clear();
                Logger.Flush(msg);
            }

            // 容量を制限するぜ☆
            if (Joseki.Capacity < josekiStr.Length)
            {
                syuturyoku.AppendLine($"joseki removed ( ascii characters size ) = { jo.DownSizeing(josekiStr.Length - Joseki.Capacity)}");
                {
                    var msg = syuturyoku.ToString();
                    syuturyoku.Clear();
                    Logger.Flush(msg);
                }

                syuturyoku.Append(".");
                {
                    var msg = syuturyoku.ToString();
                    syuturyoku.Clear();
                    Logger.Flush(msg);
                }

                // もう1回取得☆
                josekiStr = jo.ToString(Option_Application.Optionlist.USI);
            }

            // 上書き☆
            System.IO.File.WriteAllText(file, josekiStr);
        }