Ejemplo n.º 1
0
        public DataTable Format(string text, IFormatOptions formatOptions, ITableOptions tableOptions)
        {
            if (string.IsNullOrWhiteSpace(text))
            {
                return(new DataTable());
            }
            ITableDetector detector = this.ConstructDetector(text, formatOptions);

            return(this.Process(detector, tableOptions ?? TableOptions.Default));
        }
Ejemplo n.º 2
0
 private ITableDetector ConstructDetector(string text, IFormatOptions formatOptions)
 {
     if (formatOptions.CSVParsing)
     {
         return(new CSVDetector(text, formatOptions));
     }
     if (formatOptions != null && formatOptions.ColumnSizes != null && formatOptions.ColumnSizes.Count <int>() > 0)
     {
         return(new FixedColumnsDetector(text, formatOptions ?? FormatOptions.Default));
     }
     return(new SeparatorBasedDetector(text, formatOptions ?? FormatOptions.Default));
 }
Ejemplo n.º 3
0
        protected override Task <DataTable> ExecuteAsyncWithResult(AsyncCodeActivityContext context, CancellationToken cancellationToken)
        {
            IEnumerable <KeyValuePair <Rectangle, string> > positions = this.Positions.Get(context);
            string         input         = this.InputString.Get(context);
            ITableOptions  tableOptions  = this.GetTableOptions();
            IFormatOptions formatOptions = this.GetFormatOptions(context);

            return(Task.Factory.StartNew <DataTable>(delegate
            {
                TableFormatter tableFormatter = new TableFormatter();
                if (positions == null)
                {
                    return tableFormatter.Format(input, formatOptions, tableOptions);
                }
                return tableFormatter.Format(positions, tableOptions);
            }));
        }
Ejemplo n.º 4
0
        private static IFormatOptions ValidateFormatOptions(IFormatOptions formatOptions)
        {
            IFormatOptions result;

            if (formatOptions != null)
            {
                result = new FormatOptions
                {
                    ColumnSeparators = string.IsNullOrEmpty(formatOptions.ColumnSeparators) ? FormatOptions.Default.ColumnSeparators : formatOptions.ColumnSeparators,
                    NewLineSeparator = string.IsNullOrEmpty(formatOptions.NewLineSeparator) ? FormatOptions.Default.NewLineSeparator : formatOptions.NewLineSeparator,
                    ColumnSizes      = formatOptions.ColumnSizes,
                    PreserveNewLines = formatOptions.PreserveNewLines,
                    PreserveStrings  = formatOptions.PreserveStrings
                };
            }
            else
            {
                result = FormatOptions.Default;
            }
            return(result);
        }
Ejemplo n.º 5
0
 // Methods
 public CSVDetector(string input, IFormatOptions format)
 {
     this._input  = input ?? string.Empty;
     this._format = format ?? FormatOptions.Default;
 }
Ejemplo n.º 6
0
 internal SeparatorBasedDetector(string text, IFormatOptions formatOptions)
 {
     this._text          = text;
     this._formatOptions = SeparatorBasedDetector.ValidateFormatOptions(formatOptions);
     this._trimmingChars = this._formatOptions.ColumnSeparators.ToCharArray();
 }
Ejemplo n.º 7
0
 // Methods
 internal FixedColumnsDetector(string text, IFormatOptions formatOptions)
 {
     this._text          = text;
     this._formatOptions = formatOptions;
 }