//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); }
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; }