/// <summary>
    /// Save Current AIML Data to File work on this Script
    /// </summary>
    /// <param name="s_Link"></param>
    public void File_Save(string s_Link)
    {
        Class_FileIO myFile = new Class_FileIO();

        myFile.FileSet_Write_Add("LayerCount:");
        myFile.FileSet_Write_Add(this.i_LayerCount);

        myFile.FileSet_Write_Add("NeuralCount:");
        for (int lay = 0; lay < i_LayerCount; lay++)
        {
            myFile.FileSet_Write_Add(this.li_NeuralCount[lay]);
            //Lưu Number of Neural of  Layer
        }

        myFile.FileSet_Write_Add("Bias:");
        for (int lay = 0; lay < i_LayerCount - 1; lay++)
        {
            myFile.FileSet_Write_Add(this.li_Bias[lay]);
            //Lưu Bias of  Layer
        }

        myFile.FileSet_Write_Add("Weight:");
        for (int lay = 0; lay < i_LayerCount - 1; lay++)
        {
            //Xét fromng Layer (L-1)
            for (int neuY = 0; neuY < li_NeuralCount[lay + 1]; neuY++)
            {
                //Xét fromng Neural Y of Layer (L)
                for (int neuX = 0; neuX < li_NeuralCount[lay]; neuX++)
                {
                    //Xét fromng Neural X of Layer (L-1)
                    myFile.FileSet_Write_Add(this.li3_Weight[lay][neuY][neuX]);
                    //Lưu Weight of  Layer
                }
            }
        }

        //for (int neu = 0; neu < li_NeuralCount[0]; neu++)
        //{
        //	myFile.FileSet_Write_Add(BrainGet_Input()[neu]);
        //	//Lưu Input
        //}

        //for (int neu = 0; neu < li_NeuralCount[i_LayerCount - 1]; neu++)
        //{
        //	myFile.FileSet_Write_Add(BrainGet_Desired()[neu]);
        //	//Lưu Desired
        //}

        //myFile.FileSet_Write_Add(BrainGet_ErrorTotal());
        ////Lưu Error Total

        //myFile.FileSet_Write_Add(BrainGet_LoopLearned());
        ////Lưu Loop Learning

        myFile.FileSet_Write_Add("Comment:");
        myFile.FileSet_Write_Add(li_Comment_dou.Count);
        //myFile.FileWrite(li_Comment_str.Count);
        //two List of này có cùng Number of phần tử
        for (int i = 0; i < li_Comment_dou.Count; i++)
        {
            myFile.FileSet_Write_Add(li_Comment_str[i]);
            myFile.FileSet_Write_Add(li_Comment_dou[i]);
            //Lưu Imformation
        }

        //Kích hoạt lưu File
        myFile.FileActive_Write_Start(s_Link);
    }
    /// <summary>
    /// Read AIML Data from File work on this Script
    /// </summary>
    /// <param name="s_Link"></param>
    public void File_Open(string s_Link)
    {
        Class_FileIO myFile = new Class_FileIO();

        //Kích hoạt đọc File
        myFile.FileActive_Read_Start(s_Link);

        string t;

        t = myFile.FileGet_Read_Auto_String();
        int LayerCount = myFile.FileGet_Read_Auto_Int();

        Set_LayerCount(LayerCount);

        t = myFile.FileGet_Read_Auto_String();
        for (int lay = 0; lay < LayerCount; lay++)
        {
            Set_NeuralCount(lay, myFile.FileGet_Read_Auto_Int());
            //Ghi Number of Neural of  Layer
        }

        //Debug.Log("Create");
        Set_NeuralNetworkCreate(false);
        //Debug.Log("Weight");

        t = myFile.FileGet_Read_Auto_String();
        for (int lay = 0; lay < i_LayerCount - 1; lay++)
        {
            Set_Bias(lay, myFile.FileGet_Read_Auto_Float());
            //Ghi Bias of  Layer
        }

        t = myFile.FileGet_Read_Auto_String();
        for (int lay = 0; lay < i_LayerCount - 1; lay++)
        {
            //Xét fromng Layer (L-1)
            for (int neuY = 0; neuY < li_NeuralCount[lay + 1]; neuY++)
            {
                //Xét fromng Neural Y of Layer (L)
                for (int neuX = 0; neuX < li_NeuralCount[lay]; neuX++)
                {
                    //Xét fromng Neural X of Layer (L-1)
                    //Debug.Log(lay + " " + neuY + " " + neuX + " : " + this.li3_Weight[lay][neuY][neuX]);
                    //this.li3_Weight[lay][neuY][neuX] = myFile.FileGet_Read_Auto_Float();
                    Set_Weight(lay, neuY, neuX, myFile.FileGet_Read_Auto_Float());
                    //Ghi Weight of  Layer
                }
            }
        }

        //for (int neu = 0; neu < li_NeuralCount[0]; neu++)
        //{
        //	BrainSet_Input(neu, myFile.FileGet_Read_Auto_Float());
        //	//Ghi Input
        //}

        //for (int neu = 0; neu < li_NeuralCount[i_LayerCount - 1]; neu++)
        //{
        //	BrainSet_Desired(neu, myFile.FileGet_Read_Auto_Float());
        //	//Ghi Desired
        //}

        //this.f_ErrorTotal = myFile.FileGet_Read_Auto_Float();
        ////Ghi Error Total

        //this.i_LoopLearning = myFile.FileGet_Read_Auto_Int();
        ////Ghi Loop Learning

        t = myFile.FileGet_Read_Auto_String();
        int CommentCount = myFile.FileGet_Read_Auto_Int();

        //myFile.FileReader(li_Comment_str.Count);
        //two List of này có cùng Number of phần tử
        for (int i = 0; i < CommentCount; i++)
        {
            li_Comment_str.Add(myFile.FileGet_Read_Auto_String());
            li_Comment_dou.Add(myFile.FileGet_Read_Auto_Float());
            //Ghi Imformation
        }
    }
    //Get Error Total sau khi chạy FeedForward và trước khi chạy BackPropagation
    //public float BrainGet_ErrorTotal()
    //{
    //	return f_ErrorTotal;
    //}

    //Get số lần đã chạy BackPropagation
    //public int BrainGet_LoopLearned()
    //{
    //	return i_LoopLearning;
    //}

    //---------------------------------------------------------------------------- File

    /// <summary>
    /// Check AIML File Exist
    /// </summary>
    /// <param name="s_Link"></param>
    /// <returns></returns>
    public bool File_Check(string s_Link)
    {
        Class_FileIO myFile = new Class_FileIO();

        return(myFile.Get_FileExist(s_Link));
    }