Beispiel #1
0
        //UserDTO(XML 単純DTO)をFAS(C# コード処理クラス)に変換します
        public static FileAttributeSet UserSetAttDTOtoFAS(UserSetAttDTO dto)
        {
            FileAttributeSet fas = new FileAttributeSet();

            fas.AnalysisFormatTYPE = dto.AnalyzType;
            fas.AttHeader          = dto.StartHeaderBytes;
            fas.EndHeader          = dto.EndHeaderBytes;
            fas.kakutyoushi        = dto.kakutyoushi;

            //エラー解除
            fas.ERR = false;
            return(fas);
        }
Beispiel #2
0
        private void EXECUT()
        {
            int  BaseBaffuer     = Convert.ToInt32(TBBlockBuff.Text);
            bool INDEXCREATE     = false;
            bool EXECUTE         = true;//デフォはtrue
            int  WorkedFileCount = 0;
            // プラグイン処理かを判定するのに使うフラグ
            bool PluginExeFlag = false;
            // プラグインの配列指定
            int PluginArgMentNumber = 0;

            FileAttributeSet FAS = new FileAttributeSet();

            FAS.SetHeader(SelectKakutyousi);

            //もしFASでエラーが発生した場合ユーザー定義拡張子の可能性があるのでそっちを探す
            if (FAS.ERR == true)
            {
                //FASの再構築
                foreach (UserSetAttDTO al in usaList)
                {
                    if (SelectKakutyousi == al.name)
                    {
                        FAS = UserSetAttDTO.UserSetAttDTOtoFAS(al);
                    }
                }
            }

            // プラグインの検索を行う
            if (FAS.ERR == true)
            {
                foreach (String pl in PluginNameAndKaku)
                {
                    if (SelectKakutyousi == pl)
                    {
                        PluginExeFlag = true;
                    }
                }
            }



            // FASの再構築も、プラグインの検索も失敗したらエラー
            if (FAS.ERR == true && PluginExeFlag == false)
            {
                MessageBox.Show("選択した拡張子セット設定が不正か見つかりません。", "エラー",
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }

            if (CBSymrate.Checked == true)
            {
                EXECUTE = false;
            }
            WARKING = true;
            int Start = Environment.TickCount;


            int    RenbanKeta         = (int)NuupKETA.Value;
            string filename           = TBtarget.Text;
            string CreateFileBaseName = TBCBN.Text;
            string BaseDirectory      = TBsyutu.Text;

            // プラグインを使用しない抽出の時
            if (PluginExeFlag == false)
            {
                DataCutter DC = new DataCutter();
                WorkedFileCount = DC._cutter(filename, FAS, BaseBaffuer, EXECUTE, INDEXCREATE,
                                             CreateFileBaseName, BaseDirectory, RenbanKeta, TBDBlog);
            }
            else
            {
                String [] kakutyoushiAR = SelectKakutyousi.Split(new Char[] { ':' });
                String    kakutyoushi   = kakutyoushiAR[kakutyoushiAR.Length - 1];
                String[]  PluginNameAr  = kakutyoushiAR[0].Split(new char[] { ' ' });
                String    pluginname    = PluginNameAr[PluginNameAr.Length - 1];

                int ifx = 0;
                foreach (DataCutter_PlugIn.PluginInterface pl in plugins)
                {
                    if (pl.Pluginame == pluginname)
                    {
                        PluginArgMentNumber = ifx;
                    }

                    ifx++;
                }
                // プラグインを使用する抽出の時

                /*
                 * // PLUGIN TYPE <Normal> 処理したファイル数を返します
                 * int _cutter(
                 * bool Exe,
                 * bool IndexFileCreate,
                 * int buffer_Level,
                 * int RenbanKeta,
                 * string filename,
                 * string kakutyoushi,
                 * string CreateFileBaseName,
                 * string BaseDirectory,
                 * TextBox DebugTB
                 * );*/
                WorkedFileCount = plugins[PluginArgMentNumber]._cutter(
                    EXECUTE,
                    INDEXCREATE,
                    BaseBaffuer,
                    RenbanKeta,
                    filename,
                    kakutyoushi,
                    CreateFileBaseName,
                    BaseDirectory,
                    TBDBlog
                    );
            }


            int    END = Environment.TickCount;
            string apt = String.Format("抽出数 {0} /:BaseBuff {1}\r\n", WorkedFileCount, BaseBaffuer);

            TBDBlog.AppendText(apt);
            TBDBlog.AppendText(String.Format("処理時間: {0} ミリ秒\r\n", END - Start));
            TBDBlog.AppendText("処理完了しました\r\n");
            WARKING = false;
        }