Example #1
0
        //────────────────────────────────────────

        private void ReadKeyconfig(Gamepadmainloop mainloop, int nPlayerPrm, Memory_GameController gc)
        {
            Log_Method  pg_Method = new Log_MethodImpl(0);
            Log_Reports log_Reports_ThisMethod = new Log_ReportsImpl(pg_Method);

            pg_Method.BeginMethod(Info_Operating.Name_Library, this, "ReadKeyConfig", log_Reports_ThisMethod);

            // テーブルを、上から下に読んでいく。
            // 列の並び順は NO	ID	Expl	PLAYER	BEFORE	AFTER

            if (null != this.Table_Humaninput_Keyconfig)//テーブルの読取が成功していること。
            {
                DataTable dataTable = this.Table_Humaninput_Keyconfig.DataTable;

                foreach (DataRow dataRow in dataTable.Rows)
                {
                    int nPlayer;
                    Int_HumaninputImpl.TryParse(
                        dataRow.ItemArray[3],
                        out nPlayer,
                        EnumOperationIfErrorvalue.Spaces_To_Alt_Value,
                        0,
                        log_Reports_ThisMethod
                        );

                    if (nPlayerPrm == nPlayer)
                    {
                        string sBefore;
                        string sAfter;

                        String_HumaninputImpl.TryParse(
                            dataRow.ItemArray[4],
                            out sBefore,
                            "",
                            "",
                            pg_Method,
                            log_Reports_ThisMethod
                            );

                        String_HumaninputImpl.TryParse(
                            dataRow.ItemArray[5],
                            out sAfter,
                            "",
                            "",
                            pg_Method,
                            log_Reports_ThisMethod
                            );

                        EnumGamepadkeyIx  o_Before;
                        EnumGamepadkeyBit o_After;

                        switch (sBefore)
                        {
                        case "Up":
                            o_Before = EnumGamepadkeyIx.Up;
                            break;

                        case "Right":
                            o_Before = EnumGamepadkeyIx.Right;
                            break;

                        case "Down":
                            o_Before = EnumGamepadkeyIx.Down;
                            break;

                        case "Left":
                            o_Before = EnumGamepadkeyIx.Left;
                            break;

                        case "1":
                            o_Before = EnumGamepadkeyIx.B0;
                            break;

                        case "2":
                            o_Before = EnumGamepadkeyIx.B1;
                            break;

                        case "3":
                            o_Before = EnumGamepadkeyIx.B2;
                            break;

                        case "4":
                            o_Before = EnumGamepadkeyIx.B3;
                            break;

                        case "5":
                            o_Before = EnumGamepadkeyIx.B4;
                            break;

                        case "6":
                            o_Before = EnumGamepadkeyIx.B5;
                            break;

                        case "7":
                            o_Before = EnumGamepadkeyIx.B6;
                            break;

                        case "8":
                            o_Before = EnumGamepadkeyIx.B7;
                            break;

                        default:
                            o_Before = EnumGamepadkeyIx.Up;
                            break;
                        }

                        switch (sAfter)
                        {
                        case "Up":
                            o_After = EnumGamepadkeyBit.Up;
                            break;

                        case "Right":
                            o_After = EnumGamepadkeyBit.Right;
                            break;

                        case "Down":
                            o_After = EnumGamepadkeyBit.Down;
                            break;

                        case "Left":
                            o_After = EnumGamepadkeyBit.Left;
                            break;

                        case "A":
                            o_After = EnumGamepadkeyBit.A;
                            break;

                        case "B":
                            o_After = EnumGamepadkeyBit.B;
                            break;

                        case "X":
                            o_After = EnumGamepadkeyBit.X;
                            break;

                        case "Y":
                            o_After = EnumGamepadkeyBit.Y;
                            break;

                        case "L":
                            o_After = EnumGamepadkeyBit.L;
                            break;

                        case "R":
                            o_After = EnumGamepadkeyBit.R;
                            break;

                        case "Select":
                            o_After = EnumGamepadkeyBit.Select;
                            break;

                        case "Start":
                            o_After = EnumGamepadkeyBit.Start;
                            break;

                        default:
                            o_After = EnumGamepadkeyBit.Up;
                            break;
                        }

                        gc.KeyCnf.KeyconfigArray[(int)o_Before] = o_After;
                    }
                }
            }

            //
            //
            pg_Method.EndMethod(log_Reports_ThisMethod);
            log_Reports_ThisMethod.EndLogging(pg_Method);
        }
Example #2
0
        //────────────────────────────────────────

        protected void Execute6_Sub(
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(1, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute6_Sub", log_Reports);

            string sName_Fnc;

            this.TrySelectAttribute(out sName_Fnc, PmNames.S_NAME.Name_Pm, EnumHitcount.One_Or_Zero, log_Reports);

            if (log_Reports.CanStopwatch)
            {
                log_Method.Log_Stopwatch.Message = "Nアクション[" + sName_Fnc + "]実行";
                log_Method.Log_Stopwatch.Begin();
            }


            //
            // 変数は、登録されている名前の変数は存在し、登録されていない名前の変数は(自動作成されたもの以外は)存在しない。
            //
            // 元となるテーブルを見ながら、変数オブジェクトの内容を調べていく。
            //
            //


            Configurationtree_Node cur_Cf = new Configurationtree_NodeImpl(log_Method.Fullname, null);


            // 変数ログを吐く。
            {
                StringBuilder sb = new StringBuilder();

                //1行目
                sb.Append(NamesFld.S_NO);
                sb.Append(",");
                sb.Append(NamesFld.S_ID);
                sb.Append(",");
                sb.Append(NamesFld.S_EXPL);
                sb.Append(",");
                sb.Append(NamesFld.S_NAME);
                sb.Append(",");
                sb.Append(NamesFld.S_FOLDER);
                sb.Append(",");
                sb.Append(NamesFld.S_VALUE);
                sb.Append(",");
                sb.Append(NamesFld.S_END);
                sb.Append(Environment.NewLine);

                //2行目
                sb.Append(NamesTypedb.S_INT);    //NO
                sb.Append(",");
                sb.Append(NamesTypedb.S_INT);    //ID
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //Expl
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //NAME
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //FOLDER
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //VALUE
                sb.Append(",");
                sb.Append(NamesFld.S_END);       //END
                sb.Append(Environment.NewLine);

                //3行目
                sb.Append("-1,");                      //NO
                sb.Append("使わない,");                    //ID
                sb.Append("解説,");                      //Expl
                sb.Append("変数名,");                     //NAME
                sb.Append("(ファイルパス変数のみ指定有効)フォルダーパス,"); //FOLDER
                sb.Append("初期値,");                     //VALUE
                sb.Append(NamesFld.S_END);             //END
                sb.Append(Environment.NewLine);

                int nAuto = 0;
                this.Owner_MemoryApplication.MemoryVariables.EachVariable(delegate(string sKey, Expression_Node_String ec_String, ref bool bBreak)
                {
                    if (log_Method.CanDebug(1))
                    {
                        log_Method.WriteDebug_ToConsole("[" + sKey + "]=[" + ec_String.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports) + "]");
                    }

                    sb.Append(nAuto);//NO
                    sb.Append(",");
                    //ID 使わない
                    sb.Append(",");
                    //Expl 消えてしまう
                    sb.Append(",");
                    sb.Append(sKey);//NAME
                    sb.Append(",");
                    //FOLDER TODO:逆算が必要
                    sb.Append(",");
                    sb.Append(ec_String.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports)); //VALUE
                    sb.Append(",");
                    sb.Append(NamesFld.S_END);                                                                //END
                    sb.Append(Environment.NewLine);

                    nAuto++;
                });


                if (log_Method.CanDebug(1))
                {
                    log_Method.WriteDebug_ToConsole(sb.ToString());
                }

                //ログ出力
                {
                    Expression_Node_Filepath ec_Fpath_Logs = this.Owner_MemoryApplication.MemoryVariables.GetExpressionfilepathByVariablename(new Expression_Leaf_StringImpl(NamesVar.S_SP_LOGS, null, cur_Cf), true, log_Reports);

                    string sFpatha_LogVariables = ec_Fpath_Logs.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports) + System.IO.Path.DirectorySeparatorChar + NamesFile.S_LOG_VARIABLES;

                    if (log_Reports.Successful)
                    {
                        CsvWriterImpl writer = new CsvWriterImpl();
                        writer.Write(
                            sb.ToString(),
                            sFpatha_LogVariables,
                            true
                            );
                    }
                }
            }



            //変数CSVを吐き出したい。(登録されている順序を保って)
            {
                // 変数ファイルの読取り
                Table_Humaninput o_Table_Variables;
                this.Owner_MemoryApplication.MemoryVariables.TryGetTable_Variables(
                    out o_Table_Variables,
                    Application.StartupPath,
                    log_Reports
                    );

                if (null != o_Table_Variables)
                {
                    StringBuilder sb = new StringBuilder();

                    //1行目
                    sb.Append(NamesFld.S_NO);
                    sb.Append(",");
                    sb.Append(NamesFld.S_ID);
                    sb.Append(",");
                    sb.Append(NamesFld.S_EXPL);
                    sb.Append(",");
                    sb.Append(NamesFld.S_NAME);
                    sb.Append(",");
                    sb.Append(NamesFld.S_FOLDER);
                    sb.Append(",");
                    sb.Append(NamesFld.S_VALUE);
                    sb.Append(",");
                    sb.Append(NamesFld.S_END);
                    sb.Append(Environment.NewLine);

                    //2行目
                    sb.Append(NamesTypedb.S_INT);    //NO
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_INT);    //ID
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_STRING); //Expl
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_STRING); //NAME
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_STRING); //FOLDER
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_STRING); //VALUE
                    sb.Append(",");
                    sb.Append(NamesFld.S_END);       //END
                    sb.Append(Environment.NewLine);

                    //3行目
                    sb.Append("-1,");                      //NO
                    sb.Append("使わない,");                    //ID
                    sb.Append("解説,");                      //Expl
                    sb.Append("変数名,");                     //NAME
                    sb.Append("(ファイルパス変数のみ指定有効)フォルダーパス,"); //FOLDER
                    sb.Append("初期値,");                     //VALUE
                    sb.Append(NamesFld.S_END);             //END
                    sb.Append(Environment.NewLine);


                    int nAuto = 0;
                    foreach (DataRow row in o_Table_Variables.DataTable.Rows)
                    {
                        if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_NO))
                        {
                            int nValue;
                            Int_HumaninputImpl.TryParse(row[NamesFld.S_NO], out nValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, 0, log_Reports);
                            sb.Append(nValue);
                            sb.Append(",");
                        }

                        // IDは空欄が正しいが、int型なので空欄にできないので 0 を入れる。
                        if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_ID))
                        {
                            int nValue;
                            Int_HumaninputImpl.TryParse(row[NamesFld.S_ID], out nValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, 0, log_Reports);
                            sb.Append(nValue);
                            sb.Append(",");
                        }

                        if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_EXPL))
                        {
                            string sValue;
                            String_HumaninputImpl.TryParse(row[NamesFld.S_EXPL], out sValue, "", "", log_Method, log_Reports);
                            sb.Append(sValue);
                            sb.Append(",");
                        }

                        string sName_Var = "";
                        if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_NAME))
                        {
                            string sValue;
                            String_HumaninputImpl.TryParse(row[NamesFld.S_NAME], out sValue, "", "", log_Method, log_Reports);
                            sb.Append(sValue);
                            sb.Append(",");

                            sName_Var = sValue;
                        }

                        // 現在の変数の内容
                        string sValue_Var = this.Owner_MemoryApplication.MemoryVariables.GetStringByVariablename(new Expression_Leaf_StringImpl(sName_Var, null, cur_Cf), true, log_Reports);

                        //現在の変数の内容を検索
                        if (NamesVar.Test_Filepath(sName_Var))
                        {
                            Expression_Node_Filepath ec_Fpath = this.Owner_MemoryApplication.MemoryVariables.GetExpressionfilepathByVariablename(new Expression_Leaf_StringImpl(sName_Var, null, cur_Cf), true, log_Reports);
                            // 絶対パスとは限らない。フォルダーを指していることもある。
                            string sFpath = ec_Fpath.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

                            //フォルダー列値を取得。
                            string sNamevar_Folder_Src;
                            if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_FOLDER))
                            {
                                String_HumaninputImpl.TryParse(row[NamesFld.S_FOLDER], out sNamevar_Folder_Src, "", "", log_Method, log_Reports);

                                //フォルダーパス
                                Expression_Node_Filepath ec_Folder = this.Owner_MemoryApplication.MemoryVariables.GetExpressionfilepathByVariablename(new Expression_Leaf_StringImpl(sNamevar_Folder_Src, null, cur_Cf), false, log_Reports);
                                if (null != ec_Folder)
                                {
                                    // FOLDER列に入力があれば。

                                    string sFpath_Folder = ec_Folder.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
                                    if (sValue_Var.StartsWith(sFpath_Folder))
                                    {
                                        // FOLDER列値をそのままキープ。
                                        sb.Append(sNamevar_Folder_Src);

                                        // 値のフォルダー部分を削る。
                                        sValue_Var = sValue_Var.Substring(sFpath_Folder.Length);

                                        // 先頭が ディレクトリー区切り文字なら削る。
                                        if (sValue_Var.StartsWith(System.IO.Path.DirectorySeparatorChar.ToString()))
                                        {
                                            sValue_Var = sValue_Var.Substring(System.IO.Path.DirectorySeparatorChar.ToString().Length);
                                        }
                                    }
                                    else
                                    {
                                        // FOLDER列値はそのまま使えない。
                                    }
                                }

                                sb.Append(",");
                            }

                            if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_VALUE))
                            {
                                //string sValue;
                                //String_HumaninputImpl.TryParse(row[NamesFld.S_VALUE], out sValue, "", "", log_Method, log_Reports);
                                //sb.Append(sValue);
                                //sb.Append(",");

                                // 現在の変数の値(の削った残り)を入れる。
                                sb.Append(sValue_Var);
                                sb.Append(",");
                            }
                        }
                        else// if (NamesVar.Test_String(sName_Var))
                        {
                            // FOLDER列値は無し。
                            sb.Append(",");

                            if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_VALUE))
                            {
                                // 現在の変数の値を入れる。
                                sb.Append(sValue_Var);
                                sb.Append(",");
                            }
                        }

                        sb.Append(NamesFld.S_END);
                        sb.Append(Environment.NewLine);

                        nAuto++;
                    }

                    //ファイル書出し
                    {
                        Expression_Node_Filepath ec_Fpath_Logs = this.Owner_MemoryApplication.MemoryVariables.GetExpressionfilepathByVariablename(new Expression_Leaf_StringImpl(NamesVar.S_SP_LOGS, null, cur_Cf), true, log_Reports);

                        string sFpatha_LogVariables = ec_Fpath_Logs.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports) + System.IO.Path.DirectorySeparatorChar + NamesFile.S_SAVE_VARIABLES;

                        if (log_Reports.Successful)
                        {
                            CsvWriterImpl writer = new CsvWriterImpl();
                            writer.Write(
                                sb.ToString(),
                                sFpatha_LogVariables,
                                true
                                );
                        }
                    }
                }
            }



            //
            // メッセージボックスの表示。
            {
                StringBuilder sb = new StringBuilder();
                sb.Append(this.GetType().Name);
                sb.Append("#Execute6_Sub:");
                sb.Append(Environment.NewLine);
                string sArgMessage;
                this.TrySelectAttribute(out sArgMessage, Expression_Node_Function45Impl.PM_MESSAGE, EnumHitcount.One_Or_Zero, log_Reports);

                sb.Append(sArgMessage);

                MessageBox.Show(sb.ToString(), "変数をCSVファイルに書き出したい。");
            }

            log_Method.EndMethod(log_Reports);
        }
Example #3
0
        //────────────────────────────────────────
        #endregion



        #region アクション
        //────────────────────────────────────────

        /// <summary>
        /// 項目の文字列。
        /// </summary>
        /// <param name="e"></param>
        /// <param name="cctLst"></param>
        /// <param name="log_Reports"></param>
        /// <returns></returns>
        public override string P1_GetItemString(
            int nCurIx,//DrawItemEventArgs e,//e.Index
            CustomcontrolListbox cctLst,
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "P1_GetItemLabel", log_Reports);
            //
            //

            string sDisplayText;

            // ↓2012-01-20 追加
            if (nCurIx < cctLst.List_SText_Display.Count)
            {
                sDisplayText = cctLst.List_SText_Display[nCurIx];
                if (null != sDisplayText)
                {
                    goto gt_EndMethod;
                }
            }

            //
            // 項目の数だけ呼び出される。
            // 処理はできるだけ軽く。


            if (null == this.Expression_ItemLabel)
            {
                sDisplayText = "(" + Info_MiddleImpl.Name_Library + "#P1_GetItemString:リストボックスに<a-item-label>が指定されていません)";
                goto gt_EndMethod;
            }


            //
            // dataRowViewが入っている。
            DataRowView dataRowView = (DataRowView)cctLst.Items[nCurIx];
            //
            //
            // ID値を取得し、キー値とする。
            int nKey;

            Int_HumaninputImpl.TryParse(// ※仮。
                dataRowView.Row["ID"],
                out nKey,
                EnumOperationIfErrorvalue.Error,
                -1,
                log_Reports
                );
            if (!log_Reports.Successful)
            {
                // エラー
                sDisplayText = "(エラー発生中)";
                goto gt_EndMethod;
            }

            if (log_Reports.Successful)
            {
                string sKey = nKey.ToString(); // ※仮。


                //
                // value-variable-name="" 属性
                if (null == this.Expression_ValueVariableName)
                {
                    //
                    // エラー。
                    sDisplayText = "(変数名取得失敗)";
                    goto gt_Error_NullValueVariableName;
                }
                else
                {
                    //
                    // 変数名取得。

                    StringBuilder sbHint = new StringBuilder();
                    sbHint.Append(Info_MiddleImpl.Name_Library);
                    sbHint.Append(":");
                    sbHint.Append(this.GetType().Name);
                    Configurationtree_Node parent_Configurationtree_Node = new Configurationtree_NodeImpl(sbHint.ToString(), null);

                    string        sVariableName   = this.Expression_ValueVariableName.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
                    XenonNameImpl o_Name_Variable = new XenonNameImpl(sVariableName, parent_Configurationtree_Node);

                    //ystem.Console.WriteLine(this.GetType().Name + "#P1_GetItemLabel: sVariableName=[" + sVariableName + "] sValue=[" + sValue + "]");


                    //
                    // ループカウンター変数に、キー値を上書き。
                    this.Owner_MemoryApplication.MemoryVariables.SetStringValue(
                        o_Name_Variable,
                        sKey,
                        true,
                        log_Reports
                        );
                }


                //
                // 表示文字列。
                sDisplayText = this.Expression_ItemLabel.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
            }
            else
            {
                sDisplayText = "(エラー発生中)";
                goto gt_EndMethod;
            }

            if (!log_Reports.Successful)
            {
                sDisplayText = "(エラー発生中)";
                goto gt_EndMethod;
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_NullValueVariableName:
            if (log_Reports.CanCreateReport)
            {
                Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                r.SetTitle("▲エラー926!", log_Method);

                StringBuilder t = new StringBuilder();
                t.Append("<view>の<f-listbox-for-items>に、");
                t.Append(Environment.NewLine);
                t.Append("value-variable-name=””属性がありませんでした。");

                t.Append(Environment.NewLine);
                t.Append("コントロール名=[");
                t.Append(cctLst.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports));
                t.Append("]");

                r.Message = t.ToString();
                log_Reports.EndCreateReport();
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:

            // ↓2012-01-20 追加
            while (cctLst.List_SText_Display.Count <= nCurIx)
            {
                cctLst.List_SText_Display.Add(null);
            }
            cctLst.List_SText_Display[nCurIx] = sDisplayText;

            log_Method.EndMethod(log_Reports);
            return(sDisplayText);
        }
Example #4
0
        //────────────────────────────────────────

        protected void Execute6_Sub(
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(1, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute6_Sub", log_Reports);

            string sName_Fnc;

            this.TrySelectAttribute(out sName_Fnc, PmNames.S_NAME.Name_Pm, EnumHitcount.One_Or_Zero, log_Reports);

            if (log_Reports.CanStopwatch)
            {
                log_Method.Log_Stopwatch.Message = "Nアクション[" + sName_Fnc + "]実行";
                log_Method.Log_Stopwatch.Begin();
            }


            //
            // 変数は、登録されている名前の変数は存在し、登録されていない名前の変数は(自動作成されたもの以外は)存在しない。
            //
            // 元となるテーブルを見ながら、変数オブジェクトの内容を調べていく。
            //
            //


            Configurationtree_Node cur_Cf = new Configurationtree_NodeImpl(log_Method.Fullname, null);


            // 変数ログを吐く。
            {
                StringBuilder sb = new StringBuilder();

                //1行目
                sb.Append(NamesFld.S_NO);             //NO
                sb.Append(",");
                sb.Append(NamesFld.S_ID);             //ID
                sb.Append(",");
                sb.Append(NamesFld.S_TREE);           //TREE
                sb.Append(",");
                sb.Append(NamesFld.S_EXPL);           //Expl
                sb.Append(",");
                sb.Append(NamesFld.S_FILE);           //FILE
                sb.Append(",");
                sb.Append(NamesFld.S_NAME);           //NAME
                sb.Append(",");
                sb.Append(NamesFld.S_TYPE);           //TYPE
                sb.Append(",");
                sb.Append(NamesFld.S_TEXT);           //TEXT
                sb.Append(",");
                sb.Append(NamesFld.S_FONT_SIZE_PT);   //FONT_SIZE_PT
                sb.Append(",");
                sb.Append(NamesFld.S_X_LT);           //X_LT
                sb.Append(",");
                sb.Append(NamesFld.S_Y_LT);           //Y_LT
                sb.Append(",");
                sb.Append(NamesFld.S_WIDTH);          //WIDTH
                sb.Append(",");
                sb.Append(NamesFld.S_HEIGHT);         //HEIGHT
                sb.Append(",");
                sb.Append(NamesFld.S_ENABLED);        //ENABLED
                sb.Append(",");
                sb.Append(NamesFld.S_VISIBLE);        //VISIBLE
                sb.Append(",");
                sb.Append(NamesFld.S_READ_ONLY);      //READ_ONLY
                sb.Append(",");
                sb.Append(NamesFld.S_WORD_WRAP);      //WORD_WRAP
                sb.Append(",");
                sb.Append(NamesFld.S_NEW_LINE);       //NEW_LINE
                sb.Append(",");
                sb.Append(NamesFld.S_SCROLL_BARS);    //SCROLL_BARS
                sb.Append(",");
                sb.Append(NamesFld.S_CHK_VALUE_TYPE); //CHK_VALUE_TYPE
                sb.Append(",");
                sb.Append(NamesFld.S_PIC_ZOOM);       //PIC_ZOOM
                sb.Append(",");
                sb.Append(NamesFld.S_TAB_INDEX);      //TAB_INDEX
                sb.Append(",");
                sb.Append(NamesFld.S_BACK_COLOR);     //BACK_COLOR
                sb.Append(",");
                //ここまで基本テーブル。
                sb.Append(NamesFld.S_ITEM_HEIGHT_PX);      //ITEM_HEIGHT_PX
                sb.Append(",");
                sb.Append(NamesFld.S_ITEM_DISPLAY_FORMAT); //ITEM_DISPLAY_FORMAT
                sb.Append(",");
                sb.Append(NamesFld.S_LIST_VALUE_FIELD);    //LIST_VALUE_FIELD
                sb.Append(",");
                sb.Append(NamesFld.S_END);
                sb.Append(Environment.NewLine);

                //2行目
                sb.Append(NamesTypedb.S_INT);    //NO
                sb.Append(",");
                sb.Append(NamesTypedb.S_INT);    //ID
                sb.Append(",");
                sb.Append(NamesTypedb.S_INT);    //TREE
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //Expl
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //FILE
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //NAME
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //TYPE
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //TEXT
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //FONT_SIZE_PT
                sb.Append(",");
                sb.Append(NamesTypedb.S_INT);    //X_LT
                sb.Append(",");
                sb.Append(NamesTypedb.S_INT);    //Y_LT
                sb.Append(",");
                sb.Append(NamesTypedb.S_INT);    //WIDTH
                sb.Append(",");
                sb.Append(NamesTypedb.S_INT);    //HEIGHT
                sb.Append(",");
                sb.Append(NamesTypedb.S_BOOL);   //ENABLED
                sb.Append(",");
                sb.Append(NamesTypedb.S_BOOL);   //VISIBLE
                sb.Append(",");
                sb.Append(NamesTypedb.S_BOOL);   //READ_ONLY
                sb.Append(",");
                sb.Append(NamesTypedb.S_BOOL);   //WORD_WRAP
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //NEW_LINE
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //SCROLL_BARS
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //CHK_VALUE_TYPE
                sb.Append(",");
                sb.Append(NamesTypedb.S_INT);    //PIC_ZOOM
                sb.Append(",");
                sb.Append(NamesTypedb.S_INT);    //TAB_INDEX
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //BACK_COLOR
                sb.Append(",");
                //ここまで基本テーブル。
                sb.Append(NamesTypedb.S_INT);    //ITEM_HEIGHT_PX
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //ITEM_DISPLAY_FORMAT
                sb.Append(",");
                sb.Append(NamesTypedb.S_STRING); //LIST_VALUE_FIELD
                sb.Append(",");
                sb.Append(NamesFld.S_END);
                sb.Append(Environment.NewLine);

                //3行目
                sb.Append("-1,");                                                     //NO
                sb.Append("使わない,");                                                   //ID
                sb.Append("ネスト関係,");                                                  //TREE
                sb.Append("解説,");                                                     //Expl
                sb.Append("コントロール設定ファイルパス,");                                         //FILE
                sb.Append("コントロール固有名,");                                              //NAME
                sb.Append("コントロールの型,");                                               //TYPE
                sb.Append("初期値,");                                                    //TEXT
                sb.Append("フォントサイズ(pt),");                                            //FONT_SIZE_PT
                sb.Append("左上角の座標X,");                                                //X_LT
                sb.Append("左上角の座標Y,");                                                //Y_LT
                sb.Append("横幅ピクセル,");                                                 //WIDTH
                sb.Append("縦幅ピクセル,");                                                 //HEIGHT
                sb.Append("活性化,");                                                    //ENABLED
                sb.Append("可視,");                                                     //VISIBLE
                sb.Append("テキストボックス等を読み取り専用にするなら真。,");                                //READ_ONLY
                sb.Append("テキストエリアで行を自動的に折り返すなら真。,");                                 //WORD_WRAP
                sb.Append("(テキストエリア)改行記号。,");                                         //NEW_LINE
                sb.Append("テキストエリア等で利用。None,Horizontal,Vertical,Bothの4つ。使わないなら空欄。,"); //SCROLL_BARS
                sb.Append("チェックボックスの値の型。(空欄:false,true。ZERO_ONE:0,1),");              //CHK_VALUE_TYPE
                sb.Append("(未実装)画像の倍角サイズ。2000で2倍。,");                                 //PIC_ZOOM
                sb.Append("タブ・インデックス,");                                              //TAB_INDEX
                sb.Append("背景色,");                                                    //BACK_COLOR
                //ここまで基本テーブル。
                sb.Append("リストボックスの項目の高さ(ピクセル),");                                    //ITEM_HEIGHT_PX
                sb.Append("リストボックスの各項目の表示書式,");                                       //ITEM_DISPLAY_FORMAT
                sb.Append("(開発中)リストボックスの値が入っている、レコードのフィールド名。,");                      //LIST_VALUE_FIELD
                sb.Append(NamesFld.S_END);
                sb.Append(Environment.NewLine);

                int nAuto = 0;
                this.Owner_MemoryApplication.MemoryForms.ForEach_Children(delegate(string sKey, Usercontrol uct_Child, ref bool bRemove, ref bool bBreak)
                {
                    //uct_Child.ControlCommon.Configurationtree_Control.Dictionary_Attribute.



                    sb.Append(nAuto);//NO
                    sb.Append(",");
                    //ID は使わない。
                    sb.Append(",");
                    sb.Append(NamesFld.S_TREE);                                        //TREE
                    sb.Append(",");
                    sb.Append(NamesFld.S_EXPL);                                        //Expl
                    sb.Append(",");
                    sb.Append(NamesFld.S_FILE);                                        //FILE
                    sb.Append(",");
                    sb.Append(uct_Child.ControlCommon.Configurationtree_Control.Name); //NAME
                    sb.Append(",");
                    sb.Append(NamesFld.S_TYPE);                                        //TYPE
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolText);                              //TEXT
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolFontsizept);                        //FONT_SIZE_PT
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolXlt);                               //X_LT
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolYlt);                               //Y_LT
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolWidth);                             //WIDTH
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolHeight);                            //HEIGHT
                    sb.Append(",");
                    if (uct_Child.UsercontrolEnabled)
                    {
                        sb.Append(uct_Child.UsercontrolEnabled);//ENABLED
                    }
                    sb.Append(",");
                    if (uct_Child.UsercontrolVisible)
                    {
                        sb.Append(uct_Child.UsercontrolVisible);//VISIBLE
                    }
                    sb.Append(",");
                    if (uct_Child.UsercontrolReadonly)
                    {
                        sb.Append(uct_Child.UsercontrolReadonly);//READ_ONLY
                    }
                    sb.Append(",");
                    if (uct_Child.UsercontrolWordwrap)
                    {
                        sb.Append(uct_Child.UsercontrolWordwrap);//WORD_WRAP
                    }
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolNewline);//NEW_LINE
                    sb.Append(",");
                    switch (uct_Child.UsercontrolScrollbars)
                    {
                    case ScrollBars.Both:
                        sb.Append(ValuesAttr.S_BOTH);
                        break;

                    case ScrollBars.Horizontal:
                        sb.Append(ValuesAttr.S_HORIZONTAL);
                        break;

                    case ScrollBars.Vertical:
                        sb.Append(ValuesAttr.S_VERTICAL);
                        break;

                    default:
                        //TODO:「無視」と、「無し」は、分けたい。
                        //sb.Append(ValuesAttr.S_NONE);
                        break;
                    }
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolChkvaluetype); //CHK_VALUE_TYPE
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolPiczoom);      //PIC_ZOOM
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolTabindex);     //TAB_INDEX
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolBackcolor);    //BACK_COLOR
                    sb.Append(",");
                    //ここまで基本テーブル。
                    sb.Append(uct_Child.UsercontrolItemheightpx);            //ITEM_HEIGHT_PX
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolItemdisplayformat);       //ITEM_DISPLAY_FORMAT
                    sb.Append(",");
                    sb.Append(uct_Child.UsercontrolListvaluefield /*"NO"*/); //TODO:LIST_VALUE_FIELD
                    sb.Append(",");
                    sb.Append(NamesFld.S_END);
                    sb.Append(Environment.NewLine);

                    nAuto++;
                });


                if (log_Method.CanDebug(1))
                {
                    log_Method.WriteDebug_ToConsole(sb.ToString());
                }

                //ログ出力
                {
                    Expression_Node_Filepath ec_Fpath_Logs = this.Owner_MemoryApplication.MemoryVariables.GetExpressionfilepathByVariablename(new Expression_Leaf_StringImpl(NamesVar.S_SP_LOGS, null, cur_Cf), true, log_Reports);

                    string sFpatha_LogVariables = ec_Fpath_Logs.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports) + System.IO.Path.DirectorySeparatorChar + NamesFile.S_LOG_FORM;

                    if (log_Reports.Successful)
                    {
                        CsvWriterImpl writer = new CsvWriterImpl();
                        writer.Write(
                            sb.ToString(),
                            sFpatha_LogVariables,
                            true
                            );
                    }
                }
            }



            //変数CSVを吐き出したい。(登録されている順序を保って)
            {
                // 変数ファイルの読取り
                Table_Humaninput o_Table_Variables;
                this.Owner_MemoryApplication.MemoryVariables.TryGetTable_Variables(
                    out o_Table_Variables,
                    Application.StartupPath,
                    log_Reports
                    );

                if (null != o_Table_Variables)
                {
                    StringBuilder sb = new StringBuilder();

                    //1行目
                    sb.Append(NamesFld.S_NO);   //NO
                    sb.Append(",");
                    sb.Append(NamesFld.S_ID);   //ID
                    sb.Append(",");
                    sb.Append(NamesFld.S_TREE); //TREE
                    sb.Append(",");
                    sb.Append(NamesFld.S_EXPL); //Expl
                    sb.Append(",");
                    sb.Append(NamesFld.S_NAME);
                    sb.Append(",");
                    sb.Append(NamesFld.S_FOLDER);
                    sb.Append(",");
                    sb.Append(NamesFld.S_VALUE);
                    sb.Append(",");
                    sb.Append(NamesFld.S_END);
                    sb.Append(Environment.NewLine);

                    //2行目
                    sb.Append(NamesTypedb.S_INT);    //NO
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_INT);    //ID
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_STRING); //Expl
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_STRING); //NAME
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_STRING); //FOLDER
                    sb.Append(",");
                    sb.Append(NamesTypedb.S_STRING); //VALUE
                    sb.Append(",");
                    sb.Append(NamesFld.S_END);       //END
                    sb.Append(Environment.NewLine);

                    //3行目
                    sb.Append("-1,");                      //NO
                    sb.Append("使わない,");                    //ID
                    sb.Append("解説,");                      //Expl
                    sb.Append("変数名,");                     //NAME
                    sb.Append("(ファイルパス変数のみ指定有効)フォルダーパス,"); //FOLDER
                    sb.Append("初期値,");                     //VALUE
                    sb.Append(NamesFld.S_END);             //END
                    sb.Append(Environment.NewLine);


                    int nAuto = 0;
                    foreach (DataRow row in o_Table_Variables.DataTable.Rows)
                    {
                        if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_NO))
                        {
                            int nValue;
                            Int_HumaninputImpl.TryParse(row[NamesFld.S_NO], out nValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, 0, log_Reports);
                            sb.Append(nValue);
                            sb.Append(",");
                        }

                        // IDは空欄が正しいが、int型なので空欄にできないので 0 を入れる。
                        if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_ID))
                        {
                            int nValue;
                            Int_HumaninputImpl.TryParse(row[NamesFld.S_ID], out nValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, 0, log_Reports);
                            sb.Append(nValue);
                            sb.Append(",");
                        }

                        if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_EXPL))
                        {
                            string sValue;
                            String_HumaninputImpl.TryParse(row[NamesFld.S_EXPL], out sValue, "", "", log_Method, log_Reports);
                            sb.Append(sValue);
                            sb.Append(",");
                        }

                        string sName_Var = "";
                        if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_NAME))
                        {
                            string sValue;
                            String_HumaninputImpl.TryParse(row[NamesFld.S_NAME], out sValue, "", "", log_Method, log_Reports);
                            sb.Append(sValue);
                            sb.Append(",");

                            sName_Var = sValue;
                        }

                        // 現在の変数の内容
                        string sValue_Var = this.Owner_MemoryApplication.MemoryVariables.GetStringByVariablename(new Expression_Leaf_StringImpl(sName_Var, null, cur_Cf), true, log_Reports);

                        //現在の変数の内容を検索
                        if (NamesVar.Test_Filepath(sName_Var))
                        {
                            Expression_Node_Filepath ec_Fpath = this.Owner_MemoryApplication.MemoryVariables.GetExpressionfilepathByVariablename(new Expression_Leaf_StringImpl(sName_Var, null, cur_Cf), true, log_Reports);
                            // 絶対パスとは限らない。フォルダーを指していることもある。
                            string sFpath = ec_Fpath.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);

                            //フォルダー列値を取得。
                            string sNamevar_Folder_Src;
                            if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_FOLDER))
                            {
                                String_HumaninputImpl.TryParse(row[NamesFld.S_FOLDER], out sNamevar_Folder_Src, "", "", log_Method, log_Reports);

                                //フォルダーパス
                                Expression_Node_Filepath ec_Folder = this.Owner_MemoryApplication.MemoryVariables.GetExpressionfilepathByVariablename(new Expression_Leaf_StringImpl(sNamevar_Folder_Src, null, cur_Cf), false, log_Reports);
                                if (null != ec_Folder)
                                {
                                    // FOLDER列に入力があれば。

                                    string sFpath_Folder = ec_Folder.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
                                    if (sValue_Var.StartsWith(sFpath_Folder))
                                    {
                                        // FOLDER列値をそのままキープ。
                                        sb.Append(sNamevar_Folder_Src);

                                        // 値のフォルダー部分を削る。
                                        sValue_Var = sValue_Var.Substring(sFpath_Folder.Length);

                                        // 先頭が ディレクトリー区切り文字なら削る。
                                        if (sValue_Var.StartsWith(System.IO.Path.DirectorySeparatorChar.ToString()))
                                        {
                                            sValue_Var = sValue_Var.Substring(System.IO.Path.DirectorySeparatorChar.ToString().Length);
                                        }
                                    }
                                    else
                                    {
                                        // FOLDER列値はそのまま使えない。
                                    }
                                }

                                sb.Append(",");
                            }

                            if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_VALUE))
                            {
                                //string sValue;
                                //String_HumaninputImpl.TryParse(row[NamesFld.S_VALUE], out sValue, "", "", log_Method, log_Reports);
                                //sb.Append(sValue);
                                //sb.Append(",");

                                // 現在の変数の値(の削った残り)を入れる。
                                sb.Append(sValue_Var);
                                sb.Append(",");
                            }
                        }
                        else// if (NamesVar.Test_String(sName_Var))
                        {
                            // FOLDER列値は無し。
                            sb.Append(",");

                            if (o_Table_Variables.DataTable.Columns.Contains(NamesFld.S_VALUE))
                            {
                                // 現在の変数の値を入れる。
                                sb.Append(sValue_Var);
                                sb.Append(",");
                            }
                        }

                        sb.Append(NamesFld.S_END);
                        sb.Append(Environment.NewLine);

                        nAuto++;
                    }

                    //ファイル書出し
                    {
                        Expression_Node_Filepath ec_Fpath_Logs = this.Owner_MemoryApplication.MemoryVariables.GetExpressionfilepathByVariablename(new Expression_Leaf_StringImpl(NamesVar.S_SP_LOGS, null, cur_Cf), true, log_Reports);

                        string sFpatha_LogVariables = ec_Fpath_Logs.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports) + System.IO.Path.DirectorySeparatorChar + NamesFile.S_SAVE_FORM;

                        if (log_Reports.Successful)
                        {
                            CsvWriterImpl writer = new CsvWriterImpl();
                            writer.Write(
                                sb.ToString(),
                                sFpatha_LogVariables,
                                true
                                );
                        }
                    }
                }
            }



            //
            // メッセージボックスの表示。
            {
                StringBuilder sb = new StringBuilder();
                sb.Append(this.GetType().Name);
                sb.Append("#Execute6_Sub:");
                sb.Append(Environment.NewLine);
                string sArgMessage;
                this.TrySelectAttribute(out sArgMessage, Expression_Node_Function46Impl.PM_MESSAGE, EnumHitcount.One_Or_Zero, log_Reports);

                sb.Append(sArgMessage);

                MessageBox.Show(sb.ToString(), "変数をCSVファイルに書き出したい。");
            }

            log_Method.EndMethod(log_Reports);
        }
Example #5
0
        //────────────────────────────────────────

        public void XTo(
            out KeyconfigImpl out_Keycnf,
            Log_Reports log_Reports
            )
        {
            Log_Method  pg_Method        = new Log_MethodImpl(0);
            Log_Reports log_Reports_Load = new Log_ReportsImpl(pg_Method);

            pg_Method.BeginMethod(Info_Operating.Name_Library, this, "XToO", log_Reports_Load);
            //
            //

            out_Keycnf = new KeyconfigImpl();

            CsvTo_Table_HumaninputImpl csvTo = new CsvTo_Table_HumaninputImpl();
            Request_ReadsTable         oRequest_TableReads = new Request_ReadsTableImpl();
            {
                Configurationtree_NodeImpl     cf_ConfigStack = new Configurationtree_NodeImpl(Info_Operating.Name_Library + ":" + this.GetType().Name + "#<init>:", null);
                Configurationtree_NodeFilepath cf_Fpath       = new Configurationtree_NodeFilepathImpl("ファイルパス出典未指定L03_1", cf_ConfigStack);

                cf_Fpath.InitPath(
                    "Editor-config/GAME_PAD/Key-config.csv",
                    log_Reports
                    );
                Expression_Node_Filepath ec_Fpath = new Expression_Node_FilepathImpl(cf_Fpath);
                oRequest_TableReads.Expression_Filepath = ec_Fpath;

                if (!log_Reports.Successful)
                {
                    // エラー
                    goto gt_EndMethod;
                }
            }

            Format_Table_Humaninput o_TableFormat = new Format_Table_HumaninputImpl();

            out_Keycnf.O_Table_Keycnf = csvTo.Read(
                oRequest_TableReads,
                o_TableFormat,
                true,
                log_Reports
                );

            if (!log_Reports.Successful)
            {
                // エラー
                goto gt_EndMethod;
            }

            //
            // テーブルを上から1行ずつ読んでいきます。
            //
            foreach (DataRow dataRow in out_Keycnf.O_Table_Keycnf.DataTable.Rows)
            {
                //NO	ID	Expl	PLAYER	BEFORE	AFTER

                // プレイヤー番号
                int nPlayer;
                {
                    Int_HumaninputImpl o_Player = (Int_HumaninputImpl)dataRow["PLAYER"];
                    if (Int_HumaninputImpl.TryParse(
                            o_Player,
                            out nPlayer,
                            EnumOperationIfErrorvalue.Error,
                            0,
                            log_Reports
                            ))
                    {
                    }

                    if (!log_Reports.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }
                }

                // BEFORE
                EnumGamepadkeyIx enumGmkeyArray;
                {
                    string sBefore;
                    string sDebug1 = "";
                    string sDebug2 = "";
                    String_HumaninputImpl o_Before = (String_HumaninputImpl)dataRow["BEFORE"];

                    if (String_HumaninputImpl.TryParse(
                            o_Before,
                            out sBefore,
                            sDebug1,
                            sDebug2,
                            pg_Method,
                            log_Reports
                            ))
                    {
                    }

                    if (!log_Reports.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }


                    switch (sBefore)
                    {
                    case "Up":
                        enumGmkeyArray = EnumGamepadkeyIx.Up;
                        break;

                    case "Right":
                        enumGmkeyArray = EnumGamepadkeyIx.Right;
                        break;

                    case "Down":
                        enumGmkeyArray = EnumGamepadkeyIx.Down;
                        break;

                    case "Left":
                        enumGmkeyArray = EnumGamepadkeyIx.Left;
                        break;

                    case "0":
                        enumGmkeyArray = EnumGamepadkeyIx.B0;
                        break;

                    case "1":
                        enumGmkeyArray = EnumGamepadkeyIx.B1;
                        break;

                    case "2":
                        enumGmkeyArray = EnumGamepadkeyIx.B2;
                        break;

                    case "3":
                        enumGmkeyArray = EnumGamepadkeyIx.B3;
                        break;

                    case "4":
                        enumGmkeyArray = EnumGamepadkeyIx.B4;
                        break;

                    case "5":
                        enumGmkeyArray = EnumGamepadkeyIx.B5;
                        break;

                    case "6":
                        enumGmkeyArray = EnumGamepadkeyIx.B6;
                        break;

                    case "7":
                        enumGmkeyArray = EnumGamepadkeyIx.B7;
                        break;

                    default:
                        // エラー
                        enumGmkeyArray = EnumGamepadkeyIx.B0;
                        break;
                    }
                }


                // AFTER
                EnumGamepadkeyBit gmkeyPushEnum;
                {
                    string sAfter;
                    string sDebug1 = "";
                    string sDebug2 = "";
                    String_HumaninputImpl o_Before = (String_HumaninputImpl)dataRow["AFTER"];

                    if (String_HumaninputImpl.TryParse(
                            o_Before,
                            out sAfter,
                            sDebug1,
                            sDebug2,
                            pg_Method,
                            log_Reports
                            ))
                    {
                    }

                    if (!log_Reports.Successful)
                    {
                        // エラー
                        goto gt_EndMethod;
                    }

                    switch (sAfter)
                    {
                    case "Up":
                        gmkeyPushEnum = EnumGamepadkeyBit.Up;
                        break;

                    case "Right":
                        gmkeyPushEnum = EnumGamepadkeyBit.Right;
                        break;

                    case "Down":
                        gmkeyPushEnum = EnumGamepadkeyBit.Down;
                        break;

                    case "Left":
                        gmkeyPushEnum = EnumGamepadkeyBit.Left;
                        break;

                    case "A":
                        gmkeyPushEnum = EnumGamepadkeyBit.A;
                        break;

                    case "B":
                        gmkeyPushEnum = EnumGamepadkeyBit.B;
                        break;

                    case "X":
                        gmkeyPushEnum = EnumGamepadkeyBit.X;
                        break;

                    case "Y":
                        gmkeyPushEnum = EnumGamepadkeyBit.Y;
                        break;

                    case "L":
                        gmkeyPushEnum = EnumGamepadkeyBit.L;
                        break;

                    case "R":
                        gmkeyPushEnum = EnumGamepadkeyBit.R;
                        break;

                    case "Select":
                        gmkeyPushEnum = EnumGamepadkeyBit.Select;
                        break;

                    case "Start":
                        gmkeyPushEnum = EnumGamepadkeyBit.Start;
                        break;

                    default:
                        // エラー
                        gmkeyPushEnum = EnumGamepadkeyBit.A;
                        break;
                    }
                }

                //
                // 記憶
                //
                KeyconfigPadImpl keycnfPad;
                if (out_Keycnf.Dic_KeyCnf.ContainsKey(nPlayer))
                {
                    keycnfPad = out_Keycnf.Dic_KeyCnf[nPlayer];
                }
                else
                {
                    keycnfPad = new KeyconfigPadImpl();
                }

                keycnfPad.KeyconfigArray[(int)enumGmkeyArray] = gmkeyPushEnum;

                out_Keycnf.Dic_KeyCnf[nPlayer] = keycnfPad;
            }


            goto gt_EndMethod;
            //
            //
gt_EndMethod:
            pg_Method.EndMethod(log_Reports_Load);
            log_Reports_Load.EndLogging(pg_Method);
            return;
        }
Example #6
0
        //────────────────────────────────────────

        /// <summary>
        /// 指定の番号の変数について、担当者が複数いたとき、どの担当者が優先されるかを調べます。
        /// </summary>
        /// <param name="typeName">例:[I]</param>
        /// <param name="numberStr">例:970</param>
        /// <param name="humanNames">例:「太郎 | 二郎 | 三郎」</param>
        /// <param name="log_Reports">エラー処理オブジェクト</param>
        /// <returns>担当者名</returns>
        public string SearchHuman(
            string typeName, string sNumber, string humanNames, Log_Reports log_Reports)
        {
            Log_Method pg_Method = new Log_MethodImpl();

            pg_Method.BeginMethod(Info_Operating.Name_Library, this, "SearchHuman", log_Reports);

            //
            //
            //
            //

            // 現在、最も大きな値の「優先番号」。
            int highPriority = int.MinValue;
            // 現在、最も優先されている担当者の名前。
            string highHumanName = "";

            int nVariable;

            if (!int.TryParse(sNumber, out nVariable))
            {
                // エラー
                if (log_Reports.CanCreateReport)
                {
                    Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                    r.SetTitle("▲エラー1008!", pg_Method);
                    r.Message = "入力数値[" + sNumber + "]を、int型整数に変換できませんでした。";
                    log_Reports.EndCreateReport();
                }

                return("");
            }

            // 指定の担当者名をリスト化します。
            List <string> humanNameList = new List <string>();

            {
                string[] humanNameArray = humanNames.Split('|');
                foreach (string humanName in humanNameArray)
                {
                    humanNameList.Add(humanName.Trim());
                }
            }

            // 各担当者について
            foreach (GloballistconfigHuman human in this.humanDictionary.Values)
            {
                // 指定された担当者名か否か。
                if (humanNameList.Contains(human.Name))
                {
                    // 指定された担当者名なら


                    // 各変数の型について
                    foreach (GloballistconfigVariable variable in human.Dictionary_Variable.Values)
                    {
                        // 指定の変数の型と一致するかどうか。

                        if (variable.Name_Type == typeName)
                        {
                            // 指定の変数の型と一致した場合


                            // 番号別優先順位設定について
                            ConfigurationTo_IntegerRanges sToO = new ConfigurationTo_IntegerRanges();
                            foreach (GloballistconfigNumber numberObj in variable.Dictionary_Number.Values)
                            {
                                IntegerRanges o_Ranges2;
                                StringBuilder sInfoMsg = new StringBuilder();
                                string        sErrorMsg;
                                if (sToO.ConfigurationTo(numberObj.Text_Range, out o_Ranges2, ref sInfoMsg, out sErrorMsg))
                                {
                                    // 正常時

                                    // 各番号について
                                    List <int> numbers = new List <int>();
                                    o_Ranges2.ToNumbers(ref numbers);

                                    foreach (int number in numbers)
                                    {
                                        if (nVariable == number)
                                        {
                                            // 条件に含む番号なら

                                            // 優先順位を比較します。
                                            int numberRef;

                                            Int_HumaninputImpl.TryParse(
                                                numberObj.Priority,
                                                out numberRef,
                                                EnumOperationIfErrorvalue.Error,
                                                null,
                                                log_Reports
                                                );
                                            if (!log_Reports.Successful)
                                            {
                                                // エラー
                                                goto gt_EndMethod;
                                            }

                                            if (log_Reports.Successful)
                                            {
                                                // 正常時

                                                if (highPriority < numberRef)
                                                {
                                                    // 優先順位が高ければ

                                                    highPriority  = numberRef;
                                                    highHumanName = human.Name;
                                                }
                                            }
                                        }
                                        else
                                        {
                                            // 条件に含まない番号なら
                                        }
                                    }
                                }

                                if (0 < sInfoMsg.Length)
                                {
                                    // 情報・警告
                                    if (log_Reports.CanCreateReport)
                                    {
                                        Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Warning);
                                        r.Message       = sInfoMsg.ToString();
                                        sInfoMsg.Length = 0;
                                        log_Reports.EndCreateReport();
                                    }
                                }

                                if ("" != sErrorMsg)
                                {
                                    // エラー
                                    if (log_Reports.CanCreateReport)
                                    {
                                        Log_RecordReports r = log_Reports.BeginCreateReport(EnumReport.Error);
                                        r.Message = sErrorMsg;
                                        log_Reports.EndCreateReport();
                                    }
                                    goto gt_EndMethod;
                                }
                            }
                        }
                        else
                        {
                            // 指定とは異なる変数の型の場合
                        }
                    }//foreach 各変数の型について
                }
            }

            //
            //
            //
            //
gt_EndMethod:
            pg_Method.EndMethod(log_Reports);
            return(highHumanName);
        }