/// <summary>
        /// シナリオファイルを読み込む
        /// </summary>
        /// <returns>シナリオファイルが読み込めたかどうか</returns>
        public bool LoadScenario()
        {
            //ReadJEncを利用してファイルの読み込み
            using (Hnx8.ReadJEnc.FileReader reader = new FileReader(this.File))
            {
                Hnx8.ReadJEnc.CharCode c = reader.Read(this.File);
                Console.WriteLine("-----------------------------------------------------------------------");
                Console.WriteLine("Loading ScenarioFile【{0}】...", this.File.Name);
                string text = reader.Text;
                if (c is CharCode.Text)
                {
                    //読み込んだファイルがテキスト
                    Console.WriteLine("Encoding: {0}", c.Name);
                    ScenarioGrammarParser parser = new ScenarioGrammarParser();

                    try
                    {
                        this.Data = parser.Parse(text);
                        Console.WriteLine("Parse Successful !");
                        return(true);
                    }
                    catch (NullReferenceException)
                    {
                        Console.Error.WriteLine("Scenario: 【{0}】header mismatched.", this.File.FullName);
                    }
                }
                else
                {
                    //テキストファイルではない
                    Console.Error.WriteLine("【{0}】is not text file.", this.File.FullName);
                }
            }
            Console.Error.WriteLine("Scenario Load Error");
            return(false);
        }
示例#2
0
        /// <summary>
        /// シナリオ構文のテストを行います。
        /// </summary>
        /// <param name="input">構文文字列</param>
        private static void ScenarioGrammarTest(string input)
        {
            Console.WriteLine("====================================");
            Console.WriteLine("ScenarioGrammar Parser Output:");

            ScenarioGrammarParser parser = new ScenarioGrammarParser();
            ScenarioData          data   = null;

            try
            {
                data = parser.Parse(input);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e.Message + ":" + e.StackTrace);
            }
        }
示例#3
0
        /// <summary>
        /// シナリオファイルを読み込んで解析します。
        /// </summary>
        /// <returns>シナリオが正常に読み込めたかどうか</returns>
        public bool Load()
        {
            if (!File.Exists(FilePath))
            {
                //ファイルが存在しない
                Console.Error.WriteLine("Scenario: 【{0}】not found.", FileName);
                return(false);
            }

            //ReadJEncを利用してファイルの読み込み
            FileInfo file = new FileInfo(FilePath);

            using (Hnx8.ReadJEnc.FileReader reader = new FileReader(file))
            {
                Hnx8.ReadJEnc.CharCode c = reader.Read(file);
                Console.WriteLine("-----------------------------------------------------------------------");
                Console.WriteLine("Loading ScenarioFile【{0}】...", FileName);
                string text = reader.Text;
                if (c is CharCode.Text && Regex.IsMatch(text, @"BveTs\s*Scenario", RegexOptions.IgnoreCase))
                {
                    //読み込んだファイルがテキスト
                    Console.WriteLine("Encoding: {0}", c.Name);
                    ScenarioGrammarParser parser = new ScenarioGrammarParser();
                    parser.ErrorListener = ErrorListener;
                    try
                    {
                        this.Data = parser.Parse(text);
                        Console.WriteLine("Parse Successful !");
                        InitData();
                        return(true);
                    }
                    catch (NullReferenceException)
                    {
                        Console.Error.WriteLine("Scenario: 【{0}】header mismatched.", FileName);
                    }
                }
                else
                {
                    //テキストファイルではない
                    Console.Error.WriteLine("【{0}】is not text file.", FileName);
                }
            }
            Console.Error.WriteLine("Scenario Load Error");
            return(false);
        }