rendered paste body public class Row
{
private DbfFile m_Dbf;
private byte[] m_RawData;
public bool Deleted;
public Dictionary<string, object> Data;
public int Offset;
public Row(DbfFile Dbf, int RecordNumber)
{
m_Dbf = Dbf;
Data = new Dictionary<string, object>();
m_RawData = Dbf.RawReadRecord(RecordNumber);
Offset = Dbf.Header.NumBytesHdr + (Dbf.Header.NumBytesRcd * (RecordNumber - 1));
Deleted = (m_RawData[0] == 0x2A);
foreach (Field field in Dbf.Header.FieldList)
{
Data.Add(field.Name, Translator.TranslateValueToNET(field.Type, field.Offset, field.Length, field.Decimal, m_RawData));
}
}
public void Write()
{
byte[] RawData = new byte[m_Dbf.Header.NumBytesRcd];
RawData[0] = (byte)(Deleted ? 0x2A : 0x20);
foreach (Field field in m_Dbf.Header.FieldList)
{
byte[] fieldData = Translator.TranslateValueToDBF(field.Type, field.Length, field.Decimal, Data[field.Name]);
fieldData.CopyTo(RawData, field.Offset);
}
}
}