コード例 #1
0
ファイル: Program.cs プロジェクト: ho-suke/CsvDivNet
 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;
     }
 }
コード例 #2
0
        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();
        }
コード例 #3
0
 /// <summary>
 /// デザイン用もしくは、設定値が外部から渡されるコンストラクタ.
 /// </summary>
 /// <param name="config"></param>
 public MainWindowViewModel(CsvDivConfig config)
 {
     _config = config;
 }
コード例 #4
0
 /// <summary>
 /// 実行ファイルのパスと同じディレクトリ内の
 /// 設定ファイルを読み取るコンストラクタ。
 /// 設定ファイルがない場合はデフォルト値が
 /// 使用される
 /// </summary>
 public MainWindowViewModel()
 {
     _config = CsvDivConfig.LoadOrDefault(_configPath);
 }
コード例 #5
0
        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);
        }