public void WriteGB2312() { var dbf = new Dbf(encoding); fields.ForEach(x => dbf.Fields.Add(x)); DbfRecord record = dbf.CreateRecord(); foreach (var field in fields) { object item = null; try { item = data[field.Name]; } catch (Exception) { // ignored } record.Data[fields.IndexOf(field)] = item; } // Act. dbf.Write("test.dbf", DbfVersion.FoxBaseDBase3NoMemo); // Assert. var dbfTest = new Dbf(encoding); dbfTest.Read("test.dbf"); var rowStd = dbfTest.Records[0]; Assert.AreEqual(rowStd["中文字段"], "股票代码"); Assert.AreEqual(rowStd["中文字段2"], "股票代码股"); //should be truncated to 10 bytes }
public void WriteNoData() { dbf = new Dbf(); dbf.Write("test.dbf", DbfVersion.VisualFoxPro); byte[] data = ReadBytes(); Assert.AreEqual(0x30, data[0], "Version should be 0x30."); }
public void WriteOneField() { dbf = new Dbf(); DbfField field = new DbfField("TEST", DbfFieldType.Character, 12); dbf.Fields.Add(field); dbf.Write("test.dbf", DbfVersion.VisualFoxPro); dbf = new Dbf(); dbf.Read("test.dbf"); Assert.AreEqual("TEST", dbf.Fields[0].Name, "Field name should be TEST."); }
public void NumericField() { dbf = new Dbf(); DbfField field = new DbfField("TEST", DbfFieldType.Numeric, 12, 2); dbf.Fields.Add(field); DbfRecord record = dbf.CreateRecord(); record.Data[0] = 3.14; dbf.Write("test.dbf", DbfVersion.VisualFoxPro); dbf = new Dbf(); dbf.Read("test.dbf"); Assert.AreEqual(3.14, dbf.Records[0][0], "Record content should be 3.14."); }
public void WriteFieldAndRecord() { dbf = new Dbf(); DbfField field = new DbfField("TEST", DbfFieldType.Character, 12); dbf.Fields.Add(field); DbfRecord record = dbf.CreateRecord(); record.Data[0] = "HELLO"; dbf.Write("test.dbf", DbfVersion.VisualFoxPro); dbf = new Dbf(); dbf.Read("test.dbf"); Assert.AreEqual("HELLO", dbf.Records[0][0], "Record content should be HELLO."); }
public void CurrencyField() { dbf = new Dbf(); DbfField field = new DbfField("TEST", DbfFieldType.Currency, 4); dbf.Fields.Add(field); DbfRecord record = dbf.CreateRecord(); record.Data[0] = 4.34F; dbf.Write("test.dbf", DbfVersion.VisualFoxPro); dbf = new Dbf(); dbf.Read("test.dbf"); Assert.AreEqual((float)4.34, dbf.Records[0][0], "Record content should be 4.34."); }
public void DateTimeField() { dbf = new Dbf(); DbfField field = new DbfField("TEST", DbfFieldType.DateTime, 8); dbf.Fields.Add(field); DbfRecord record = dbf.CreateRecord(); record.Data[0] = new DateTime(2018, 8, 7, 20, 15, 8); dbf.Write("test.dbf", DbfVersion.VisualFoxPro); dbf = new Dbf(); dbf.Read("test.dbf"); Assert.AreEqual(new DateTime(2018, 8, 7, 20, 15, 8), dbf.Records[0][0], "Record content should be 2018-08-07 20:15:08."); }
public void LogicalField() { dbf = new Dbf(); DbfField field = new DbfField("TEST", DbfFieldType.Logical, 12); dbf.Fields.Add(field); DbfRecord record = dbf.CreateRecord(); record.Data[0] = true; dbf.Write("test.dbf", DbfVersion.VisualFoxPro); dbf = new Dbf(); dbf.Read("test.dbf"); Assert.AreEqual(true, dbf.Records[0][0], "Record content should be TRUE."); }
public void WriteCP866() { // Arrange. var standard = ReadStandard(); var dbf = new Dbf(encoding); fields.ForEach(x => dbf.Fields.Add(x)); DbfRecord record = dbf.CreateRecord(); foreach (var field in fields) { object item = null; try { item = data[field.Name]; } catch (Exception) { // ignored } record.Data[fields.IndexOf(field)] = item; } // Act. dbf.Write("test.dbf", DbfVersion.FoxBaseDBase3NoMemo); // Assert. var rowStd = standard.Records[0]; var row = dbf.Records[0]; foreach (var field in fields) { Assert.AreEqual(rowStd[field.Name], row[field.Name]); } }