コード例 #1
0
            protected static string ToText(StringBuilder stringBuilder, ref CsvValueReader reader)
            {
                var text = stringBuilder.ToString();

                stringBuilder.Clear();
                reader = new CsvValueReader();
                return(text);
            }
コード例 #2
0
        static IEnumerable <string> SplitCsv(this string csv)
        {
            var stringBuilder = new StringBuilder();
            var reader        = new CsvValueReader();

            foreach (var character in csv)
            {
                var itemText = reader.Read(stringBuilder, character, ref reader);
                if (itemText != null)
                {
                    yield return(itemText);
                }
            }
            yield return(stringBuilder.ToString());
        }
コード例 #3
0
 public virtual string Read(StringBuilder stringBuilder, char character, ref CsvValueReader reader)
 {
     if (character == Separator)
     {
         return(ToText(stringBuilder, ref reader));
     }
     if (character == doubleQuoration)
     {
         reader = new CsvValueInDoubleQuotationReader();
     }
     else
     {
         stringBuilder.Append(character);
     }
     return(null);
 }
コード例 #4
0
 public override string Read(StringBuilder stringBuilder, char character, ref CsvValueReader reader)
 {
     if (character == Separator)
     {
         if (readingDoubleQuotation)
         {
             return(ToText(stringBuilder, ref reader));
         }
         stringBuilder.Append(character);
     }
     else if (character == doubleQuoration)
     {
         if (readingDoubleQuotation)
         {
             stringBuilder.Append(character);
         }
         readingDoubleQuotation = !readingDoubleQuotation;
     }
     else
     {
         stringBuilder.Append(character);
     }
     return(null);
 }
コード例 #5
0
 public ValueMapper()
 {
     factory     = new MapperFactory();
     propReader  = new PropertyReader();
     valueReader = new CsvValueReader();
 }