コード例 #1
0
        /// <summary>
        /// Writes the textual representation of the given values to the writer.
        /// </summary>
        /// <param name="values">The values to write.</param>
        /// <exception cref="System.ArgumentNullException">The values array is null.</exception>
        public void Write(object[] values)
        {
            if (isDisposed)
            {
                throw new ObjectDisposedException("SeparatedValueWriter");
            }
            if (values == null)
            {
                throw new ArgumentNullException("values");
            }
            if (values.Length != schema.ColumnDefinitions.Count)
            {
                throw new ArgumentException(Resources.WrongNumberOfValues, "values");
            }
            if (isFirstLine)
            {
                if (isFirstRecordSchema)
                {
                    buildSchema(writer);
                }
                isFirstLine = false;
            }
            string[] formattedValues = schema.FormatValues(values).Select(v => escape(v)).ToArray();
            string   joined          = String.Join(separator, formattedValues);

            writer.Write(joined);
            writer.Write(recordSeparator);
        }
コード例 #2
0
 private IEnumerable <string> formatValues(object[] values)
 {
     if (schema == null)
     {
         StringColumn column = new StringColumn("a");
         return(values.Select(v => column.Format(v)));
     }
     else
     {
         return(schema.FormatValues(values));
     }
 }
コード例 #3
0
 private string[] formatValues(SeparatedValueSchema schema, object[] values)
 {
     if (schema == null)
     {
         string[] results = new string[values.Length];
         for (int index = 0; index != results.Length; ++index)
         {
             results[index] = toString(values[index]);
         }
         return(results);
     }
     else
     {
         var metadata = injector == null ? Metadata : new SeparatedValueMetadata()
         {
             Schema             = schema,
             Options            = Metadata.Options,
             RecordCount        = Metadata.RecordCount,
             LogicalRecordCount = Metadata.LogicalRecordCount
         };
         return(schema.FormatValues(Metadata, values));
     }
 }
コード例 #4
0
 /// <summary>
 /// Formats the given values assuming that they are in the same order as the column definitions.
 /// </summary>
 /// <param name="values">The values to format.</param>
 /// <returns>The formatted values.</returns>
 internal string[] FormatValues(object[] values)
 {
     return(schema.FormatValues(values));
 }