public void CanReadFromFile() { string textFile = Path.GetTempFileName(); try { using (StreamWriter writer = new StreamWriter(textFile, false)) { writer.WriteLine("01732Juan Perez [email protected]"); writer.WriteLine("02310Guillermo Diez [email protected]"); } using (FixedWidthFieldParser parser = new FixedWidthFieldParser(textFile)) { parser.SetFieldWidths(5, 15, 0); parser.TrimWhiteSpace = true; Assert.AreEqual("01732:Juan Perez:[email protected]", parser.ReadFields().ToString(":")); Assert.AreEqual("02310:Guillermo Diez:[email protected]", parser.ReadFields().ToString(":")); } } finally { File.Delete(textFile); } }
public void VariableLengthField() { string newLine = "\r\n"; string text = "01732Juan Perez [email protected]" + newLine + "02310Guillermo Diez [email protected]"; using (StringReader reader = new StringReader(text)) { using (FixedWidthFieldParser parser = new FixedWidthFieldParser(reader)) { parser.SetFieldWidths(5, 15, 0); parser.TrimWhiteSpace = true; Assert.AreEqual("01732:Juan Perez:[email protected]", parser.ReadFields().ToString(":")); Assert.AreEqual("02310:Guillermo Diez:[email protected]", parser.ReadFields().ToString(":")); } } }
public void FailsIfLineIsShorterThanExpected() { string text = "01732Juan Perez"; using (StringReader reader = new StringReader(text)) { using (FixedWidthFieldParser parser = new FixedWidthFieldParser(reader)) { parser.SetFieldWidths(5, 15, 8); parser.ReadFields(); } } }
public void CanParseMultipleFields() { string text = "01732Juan Perez 11052002"; using (StringReader reader = new StringReader(text)) { using (FixedWidthFieldParser parser = new FixedWidthFieldParser(reader)) { parser.SetFieldWidths(5, 15, 8); Assert.AreEqual(3, parser.GetFieldWidths().Length); Assert.AreEqual("01732:Juan Perez :11052002", parser.ReadFields().ToString(":")); } } }
public void CanParseSingleField() { string text = "single record"; using (StringReader reader = new StringReader(text)) { using (FixedWidthFieldParser parser = new FixedWidthFieldParser(reader)) { TextFields fields = parser.ReadFields(); Assert.AreEqual(1, fields.Count); Assert.AreEqual(text, fields[0]); } } }
public void CanReadTypedFields() { string text = "01732Juan Perez 0100.0011/05/2002"; using (StringReader reader = new StringReader(text)) { using (FixedWidthFieldParser parser = new FixedWidthFieldParser(reader)) { parser.SetFieldWidths(5, 15, 7, 10); parser.TrimWhiteSpace = true; TextFields fields = parser.ReadFields(); Assert.AreEqual(1732, fields.GetInt32(0)); Assert.AreEqual("Juan Perez", fields.GetString(1)); Assert.AreEqual(100.0f, fields.GetSingle(2)); Assert.AreEqual(new DateTime(2002, 11, 05), fields.GetDateTime(3)); } } }