本文整理汇总了C#中CsvParser.Read方法的典型用法代码示例。如果您正苦于以下问题:C# CsvParser.Read方法的具体用法?C# CsvParser.Read怎么用?C# CsvParser.Read使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CsvParser
的用法示例。
在下文中一共展示了CsvParser.Read方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MultipleCharDelimiter2Test
public void MultipleCharDelimiter2Test()
{
using( var stream = new MemoryStream() )
using( var reader = new StreamReader( stream ) )
using( var writer = new StreamWriter( stream ) )
using( var parser = new CsvParser( reader ) )
{
writer.WriteLine( "1``2``3" );
writer.WriteLine( "4``5``6" );
writer.Flush();
stream.Position = 0;
parser.Configuration.Delimiter = "``";
parser.Configuration.HasHeaderRecord = false;
var row = parser.Read();
Assert.IsNotNull( row );
Assert.AreEqual( 3, row.Length );
Assert.AreEqual( "1", row[0] );
Assert.AreEqual( "2", row[1] );
Assert.AreEqual( "3", row[2] );
row = parser.Read();
Assert.IsNotNull( row );
Assert.AreEqual( 3, row.Length );
Assert.AreEqual( "4", row[0] );
Assert.AreEqual( "5", row[1] );
Assert.AreEqual( "6", row[2] );
row = parser.Read();
Assert.IsNull( row );
}
}
示例2: ByteCountTestWithQuotedFieldsClosingQuoteAtStartOfBuffer
public void ByteCountTestWithQuotedFieldsClosingQuoteAtStartOfBuffer()
{
var config = new Configuration.CsvConfiguration()
{
CountBytes = true,
BufferSize = 4
};
using( var stream = new MemoryStream() )
using( var writer = new StreamWriter( stream ) )
using( var reader = new StreamReader( stream ) )
using( var parser = new CsvParser( reader, config ) )
{
writer.Write( "1,\"2\",3\r\n" );
writer.Write( "\"4\",5,\"6\"\r\n" );
writer.Flush();
stream.Position = 0;
parser.Read();
Assert.AreEqual( 9, parser.BytePosition );
parser.Read();
Assert.AreEqual( 20, parser.BytePosition );
Assert.IsNull( parser.Read() );
}
}
示例3: CallbackTest
public void CallbackTest()
{
using( var stream = new MemoryStream() )
using( var reader = new StreamReader( stream ) )
using( var writer = new StreamWriter( stream ) )
using( var parser = new CsvParser( reader ) )
{
writer.WriteLine( " a\"bc\",d" );
writer.WriteLine( "\"a\"\"b\"c \" ,d" );
writer.WriteLine( "\"a\"\"b\",c" );
writer.Flush();
stream.Position = 0;
string field = null;
parser.Configuration.BadDataCallback = f => field = f;
parser.Read();
Assert.IsNotNull( field );
Assert.AreEqual( " a\"bc\"", field );
field = null;
parser.Read();
Assert.IsNotNull( field );
Assert.AreEqual( "a\"bc \" ", field );
field = null;
parser.Read();
Assert.IsNull( field );
}
}
示例4: DifferentDelimiterTest
public void DifferentDelimiterTest()
{
using( var stream = new MemoryStream() )
using( var reader = new StreamReader( stream ) )
using( var writer = new StreamWriter( stream ) )
using( var parser = new CsvParser( reader ) )
{
writer.WriteLine( "1\t2\t3" );
writer.WriteLine( "4\t5\t6" );
writer.Flush();
stream.Position = 0;
parser.Configuration.Delimiter = "\t";
parser.Configuration.HasHeaderRecord = false;
var row = parser.Read();
Assert.IsNotNull( row );
Assert.AreEqual( 3, row.Length );
Assert.AreEqual( "1", row[0] );
Assert.AreEqual( "2", row[1] );
Assert.AreEqual( "3", row[2] );
row = parser.Read();
Assert.IsNotNull( row );
Assert.AreEqual( 3, row.Length );
Assert.AreEqual( "4", row[0] );
Assert.AreEqual( "5", row[1] );
Assert.AreEqual( "6", row[2] );
row = parser.Read();
Assert.IsNull( row );
}
}
示例5: ByteCountUsingCharWithMoreThanSingleByteTest
public void ByteCountUsingCharWithMoreThanSingleByteTest()
{
var encoding = Encoding.Unicode;
using( var stream = new MemoryStream() )
using( var writer = new StreamWriter( stream, encoding ) )
using( var reader = new StreamReader( stream, encoding ) )
using( var parser = new CsvParser( reader ) )
{
//崔钟铉
parser.Configuration.CountBytes = true;
parser.Configuration.Encoding = encoding;
writer.Write( "1,崔\r\n" );
writer.Write( "3,钟\r\n" );
writer.Write( "5,铉\r\n" );
writer.Flush();
stream.Position = 0;
parser.Read();
Assert.Equal( 8, parser.BytePosition );
parser.Read();
Assert.Equal( 18, parser.BytePosition );
parser.Read();
Assert.Equal( 28, parser.BytePosition );
parser.Read();
Assert.Equal( 30, parser.BytePosition );
}
}
示例6: AllFieldsEmptyNoEolOnLastLineTest
public void AllFieldsEmptyNoEolOnLastLineTest()
{
using( var stream = new MemoryStream() )
using( var reader = new StreamReader( stream ) )
using( var writer = new StreamWriter( stream ) )
using( var parser = new CsvParser( reader ) )
{
writer.WriteLine( ";;;;" );
writer.Write( ";;;;" );
writer.Flush();
stream.Position = 0;
parser.Configuration.Delimiter = ";;";
parser.Configuration.HasHeaderRecord = false;
var row = parser.Read();
Assert.IsNotNull( row );
Assert.AreEqual( 3, row.Length );
Assert.AreEqual( "", row[0] );
Assert.AreEqual( "", row[1] );
Assert.AreEqual( "", row[2] );
row = parser.Read();
Assert.IsNotNull( row );
Assert.AreEqual( 3, row.Length );
Assert.AreEqual( "", row[0] );
Assert.AreEqual( "", row[1] );
Assert.AreEqual( "", row[2] );
row = parser.Read();
Assert.IsNull( row );
}
}
示例7: CharReadTotalTest
public void CharReadTotalTest()
{
using( var stream = new MemoryStream() )
using( var writer = new StreamWriter( stream ) )
using( var reader = new StreamReader( stream ) )
using( var parser = new CsvParser( reader ) )
{
parser.Configuration.AllowComments = true;
// This is a breakdown of the char counts.
// Read() will read up to the first line end char
// and any more on the line will get read with the next read.
// [I][d][,][N][a][m][e][\r][\n]
// 1 2 3 4 5 6 7 8 9
// [1][,][o][n][e][\r][\n]
// 10 11 12 13 14 15 16
// [,][\r][\n]
// 17 18 19
// [\r][\n]
// 20 21
// [#][ ][c][o][m][m][e][n][t][s][\r][\n]
// 22 23 24 25 26 27 28 29 30 31 32 33
// [2][,][t][w][o][\r][\n]
// 34 35 36 37 38 39 40
// [3][,]["][t][h][r][e][e][,][ ][f][o][u][r]["][\r][\n]
// 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
writer.WriteLine( "Id,Name" );
writer.WriteLine( "1,one" );
writer.WriteLine( "," );
writer.WriteLine( "" );
writer.WriteLine( "# comments" );
writer.WriteLine( "2,two" );
writer.WriteLine( "3,\"three, four\"" );
writer.Flush();
stream.Position = 0;
parser.Read();
Assert.Equal( 8, parser.Position );
parser.Read();
Assert.Equal( 15, parser.Position );
parser.Read();
Assert.Equal( 18, parser.Position );
parser.Read();
Assert.Equal( 39, parser.Position );
parser.Read();
Assert.Equal( 56, parser.Position );
parser.Read();
Assert.Equal( 57, parser.Position );
}
}
示例8: CallingReadMultipleTimesAfterDoneReadingTest
public void CallingReadMultipleTimesAfterDoneReadingTest()
{
var stream = new MemoryStream();
var writer = new StreamWriter( stream );
writer.WriteLine( "one,two,three" );
writer.WriteLine( "four,five,six" );
writer.Flush();
stream.Position = 0;
var reader = new StreamReader( stream );
var parser = new CsvParser( reader );
parser.Read();
parser.Read();
parser.Read();
parser.Read();
}
示例9: SimpleParseTest
public void SimpleParseTest()
{
using( var stream = new MemoryStream() )
using( var writer = new StreamWriter( stream ) )
using( var reader = new StreamReader( stream ) )
using( var parser = new CsvParser( reader ) )
{
writer.Write( "1,2\r\n" );
writer.Write( "3,4\r\n" );
writer.Flush();
stream.Position = 0;
var row = parser.Read();
Assert.IsNotNull( row );
row = parser.Read();
Assert.IsNotNull( row );
Assert.IsNull( parser.Read() );
}
}
示例10: Parse2RecordsLastWithNoCrlfTest
public void Parse2RecordsLastWithNoCrlfTest()
{
using( var memoryStream = new MemoryStream() )
using( var streamReader = new StreamReader( memoryStream ) )
using( var streamWriter = new StreamWriter( memoryStream ) )
using( var parser = new CsvParser( streamReader ) )
{
streamWriter.WriteLine( "one,two,three" );
streamWriter.Write( "four,five,six" );
streamWriter.Flush();
memoryStream.Position = 0;
parser.Read();
var record = parser.Read();
Assert.IsNotNull( record );
Assert.AreEqual( 3, record.Length );
Assert.AreEqual( "four", record[0] );
Assert.AreEqual( "five", record[1] );
Assert.AreEqual( "six", record[2] );
}
}
示例11: ByteCountTest
public void ByteCountTest()
{
using( var stream = new MemoryStream() )
using( var writer = new StreamWriter( stream ) )
using( var reader = new StreamReader( stream ) )
using( var parser = new CsvParser( reader ) )
{
parser.Configuration.CountBytes = true;
writer.Write( "1,2\r\n" );
writer.Write( "3,4\r\n" );
writer.Flush();
stream.Position = 0;
parser.Read();
Assert.AreEqual( 5, parser.BytePosition );
parser.Read();
Assert.AreEqual( 10, parser.BytePosition );
Assert.IsNull( parser.Read() );
}
}
示例12: ByteCountTestWithQuotedFields
public void ByteCountTestWithQuotedFields()
{
using( var stream = new MemoryStream() )
using( var writer = new StreamWriter( stream ) )
using( var reader = new StreamReader( stream ) )
using( var parser = new CsvParser( reader ) )
{
parser.Configuration.CountBytes = true;
writer.Write( "1,\"2\"\r\n" );
writer.Write( "\"3\",4\r\n" );
writer.Flush();
stream.Position = 0;
parser.Read();
Assert.AreEqual( 7, parser.BytePosition );
parser.Read();
Assert.AreEqual( 14, parser.BytePosition );
Assert.IsNull( parser.Read() );
}
}
示例13: ThrowExceptionTest
public void ThrowExceptionTest()
{
using( var stream = new MemoryStream() )
using( var reader = new StreamReader( stream ) )
using( var writer = new StreamWriter( stream ) )
using( var parser = new CsvParser( reader ) )
{
writer.WriteLine( "1,2" );
writer.WriteLine( " a\"bc\",d" );
writer.Flush();
stream.Position = 0;
parser.Configuration.ThrowOnBadData = true;
parser.Read();
try
{
parser.Read();
Assert.Fail( "Failed to throw exception on bad data." );
}
catch( CsvBadDataException ) { }
}
}
示例14: RawRecordLfTest
public void RawRecordLfTest()
{
using( var stream = new MemoryStream() )
using( var writer = new StreamWriter( stream ) )
using( var reader = new StreamReader( stream ) )
using( var parser = new CsvParser( reader ) )
{
writer.Write( "1,2\n" );
writer.Write( "3,4\n" );
writer.Flush();
stream.Position = 0;
parser.Read();
Assert.AreEqual( "1,2\n", parser.RawRecord );
parser.Read();
Assert.AreEqual( "3,4\n", parser.RawRecord );
parser.Read();
Assert.AreEqual( null, parser.RawRecord );
}
}
示例15: RawRecordCr2DelimiterTest
public void RawRecordCr2DelimiterTest()
{
using( var stream = new MemoryStream() )
using( var writer = new StreamWriter( stream ) )
using( var reader = new StreamReader( stream ) )
using( var parser = new CsvParser( reader ) )
{
writer.Write( "1;;2\r" );
writer.Write( "3;;4\r" );
writer.Flush();
stream.Position = 0;
parser.Configuration.Delimiter = ";;";
parser.Read();
Assert.AreEqual( "1;;2\r", parser.RawRecord );
parser.Read();
Assert.AreEqual( "3;;4\r", parser.RawRecord );
parser.Read();
Assert.AreEqual( string.Empty, parser.RawRecord );
}
}