/// <summary>
 /// Create a text reader.
 /// </summary>
 /// <param name="catalog">The catalog.</param>
 /// <param name="columns">The columns of the schema.</param>
 /// <param name="advancedSettings">The delegate to set additional settings.</param>
 /// <param name="dataSample">The optional location of a data sample.</param>
 public static TextLoader TextReader(this DataOperations catalog,
                                     TextLoader.Column[] columns, Action <TextLoader.Arguments> advancedSettings = null, IMultiStreamSource dataSample = null)
 => new TextLoader(CatalogUtils.GetEnvironment(catalog), columns, advancedSettings, dataSample);
 /// <summary>
 /// Create a text reader <see cref="TextLoader"/>.
 /// </summary>
 /// <param name="catalog">The <see cref="DataOperations"/> catalog.</param>
 /// <param name="columns">The columns of the schema.</param>
 /// <param name="hasHeader">Whether the file has a header.</param>
 /// <param name="separatorChar">The character used as separator between data points in a row. By default the tab character is used as separator.</param>
 /// <param name="dataSample">The optional location of a data sample.</param>
 public static TextLoader CreateTextReader(this DataOperations catalog,
                                           TextLoader.Column[] columns,
                                           bool hasHeader                = TextLoader.DefaultArguments.HasHeader,
                                           char separatorChar            = TextLoader.DefaultArguments.Separator,
                                           IMultiStreamSource dataSample = null)
 => new TextLoader(CatalogUtils.GetEnvironment(catalog), columns, hasHeader, separatorChar, dataSample);
 /// <summary>
 /// Create a text reader.
 /// </summary>
 /// <param name="catalog">The catalog.</param>
 /// <param name="args">The arguments to text reader, describing the data schema.</param>
 /// <param name="dataSample">The optional location of a data sample.</param>
 public static TextLoader TextReader(this DataOperations catalog,
                                     TextLoader.Arguments args, IMultiStreamSource dataSample = null)
 => new TextLoader(CatalogUtils.GetEnvironment(catalog), args, dataSample);
 /// <summary>
 /// Create a text reader <see cref="TextLoader"/>.
 /// </summary>
 /// <param name="catalog">The catalog.</param>
 /// <param name="columns">The columns of the schema.</param>
 /// <param name="hasHeader">Whether the file has a header.</param>
 /// <param name="separatorChar">The character used as separator between data points in a row. By default the tab character is used as separator.</param>
 /// <param name="dataSample">The optional location of a data sample.</param>
 public static TextLoader CreateTextReader(this DataOperations catalog,
                                           Column[] columns, bool hasHeader = false, char separatorChar = '\t', IMultiStreamSource dataSample = null)
 => new TextLoader(CatalogUtils.GetEnvironment(catalog), columns, hasHeader, separatorChar, dataSample);