private static void ExecuteMain(string[] args) { Environment.ExitCode = EXIT_SUCCESS; try { CommandLineOption cmd = new CommandLineOption(args); if (cmd.HasHelpSwitch()) { Console.WriteLine(CommandLineOption.GetHelpMessage()); System.Environment.Exit(EXIT_HELP); } CsvDivConfig config = cmd.CreateConfig(); ValidationResult valid = config.Valid(); if (valid == ValidationResult.Success) { ConsoleExecutor.Execute(config); } else { Console.WriteLine(CommandLineOption.GetHelpMessage()); Console.WriteLine(valid.ErrorMessage); System.Environment.Exit(EXIT_ERROR); } } catch (Exception ex) { Console.WriteLine(ex.Message); Environment.ExitCode = EXIT_ERROR; } }
public static void Execute(CsvDivConfig config) { CsvDivider divider = new CsvDivider(config); divider.FileDivideCompleted += new EventHandler <EventArgs>(divider_FileDivideCompleted); divider.FileDivideStarted += new EventHandler <EventArgs>(divider_FileDivideStarted); divider.UnitFileDivided += new EventHandler <DividedEventArgs>(divider_UnitFileDivided); divider.UnitFileDividing += new EventHandler <DividingEventArgs>(divider_UnitFileDividing); divider.FileDivideFailed += new EventHandler <DivideExceptionEventArgs>(divider_FileDivideFailed); divider.Divide(); }
/// <summary> /// デザイン用もしくは、設定値が外部から渡されるコンストラクタ. /// </summary> /// <param name="config"></param> public MainWindowViewModel(CsvDivConfig config) { _config = config; }
/// <summary> /// 実行ファイルのパスと同じディレクトリ内の /// 設定ファイルを読み取るコンストラクタ。 /// 設定ファイルがない場合はデフォルト値が /// 使用される /// </summary> public MainWindowViewModel() { _config = CsvDivConfig.LoadOrDefault(_configPath); }
public CsvDivConfig CreateConfig() { // 設定ファイルが指定された場合、設定ファイルをロード string option = GetArgument(ConfigOption); string path = string.Empty; if (!string.IsNullOrEmpty(option)) { path = option.Substring(ConfigOption.Length); if (!System.IO.File.Exists(path)) { throw new ApplicationException("設定ファイルのパスが不正です."); } } CsvDivConfig config = CsvDivConfig.LoadOrDefault(path); #region 詳細オプションの設定 option = GetArgument(HeaderModeOption); if (!string.IsNullOrEmpty(option)) { config.HeaderMode = (HeaderMode)Enum.Parse(typeof(HeaderMode), option.Substring(HeaderModeOption.Length)); } option = GetArgument(HeaderFileOption); if (!string.IsNullOrEmpty(option)) { config.HeaderFileName = option.Substring(HeaderFileOption.Length); } option = GetArgument(DelimitorOption); if (!string.IsNullOrEmpty(option)) { string c = option.Substring(DelimitorOption.Length); if (c.Length != 1) { throw new ApplicationException("フィールド区切り文字は1文字のみサポートしています。"); } config.Delimitor = c[0]; } option = GetArgument(DQuotedOption); if (!string.IsNullOrEmpty(option)) { config.IsDQuoted = bool.Parse(option.Substring(DQuotedOption.Length)); } option = GetArgument(MaxRowCountOption); if (!string.IsNullOrEmpty(option)) { config.MaxRowCount = long.Parse(option.Substring(MaxRowCountOption.Length)); } option = GetArgument(SeqNoDigitsOption); if (!string.IsNullOrEmpty(option)) { config.SeqNoDigits = int.Parse(option.Substring(SeqNoDigitsOption.Length)); } option = GetArgument(InputEncodingOption); if (!string.IsNullOrEmpty(option)) { config.InputFileEncodingName = option.Substring(InputEncodingOption.Length); } option = GetArgument(InputFileNameOption); if (!string.IsNullOrEmpty(option)) { config.InputFileName = option.Substring(InputFileNameOption.Length); } option = GetArgument(OutputDirectoryOption); if (!string.IsNullOrEmpty(option)) { config.OutputDirectoryName = option.Substring(OutputDirectoryOption.Length); } option = GetArgument(OutputFileBaseOption); if (!string.IsNullOrEmpty(option)) { config.OutputFileBase = option.Substring(OutputFileBaseOption.Length); } option = GetArgument(OutputExtOption); if (!string.IsNullOrEmpty(option)) { config.OutputFileExtention = option.Substring(OutputExtOption.Length); } option = GetArgument(OutputEncodingOption); if (!string.IsNullOrEmpty(option)) { config.OutputFileEncodingName = option.Substring(OutputEncodingOption.Length); } option = GetArgument(OutputInputFileDirectoryOption); if (!string.IsNullOrEmpty(option)) { config.OutputInputFileDirectory = bool.Parse(option.Substring(OutputInputFileDirectoryOption.Length)); } if (!string.IsNullOrEmpty(GetArgument(UseRegacyCsvParserSwitch))) { config.UseRegacyCsvParser = true; } option = GetArgument(OutputFileFormatOption); if (!string.IsNullOrEmpty(option)) { config.OutputFileFormat = option.Substring(OutputFileFormatOption.Length); } #endregion return(config); }