public DbfField(string fldName, DbfHeader.dBaseFieldType fldType, int recOffset, int fldLength, int decLength, int ordinal) { this.FieldNameHex = Hex.ToHex(Encoding.Unicode.GetBytes(fldName)); this.FieldTypeHex = Hex.ToHex(new byte[] { (byte)fldType }); this.RecordOffsetHex = Hex.ToHex(recOffset).PadLeft(8, '0'); this.FieldLength = fldLength; this.DecimalLength = decLength; this.Ordinal = ordinal; this.Owner = null; }
/// <summary> /// Retursn the System.Type equivalent to the supplied DbfHeader.dBaseFieldType. /// </summary> /// <param name="fldType">A DbfHeader.dBaseFieldType value to convert from.</param> /// <returns>An equivalent System.Type object.</returns> public static Type GetSystemDataType(DbfHeader.dBaseFieldType fldType) { switch (fldType) { case DbfHeader.dBaseFieldType.Logical: return(typeof(System.Boolean)); case DbfHeader.dBaseFieldType.Date: return(typeof(System.DateTime)); case DbfHeader.dBaseFieldType.DateTime: return(typeof(System.DateTime)); case DbfHeader.dBaseFieldType.Timestamp: return(typeof(System.DateTime)); case DbfHeader.dBaseFieldType.Memo: return(typeof(System.String)); case DbfHeader.dBaseFieldType.Numeric: return(typeof(System.String)); case DbfHeader.dBaseFieldType.Character: return(typeof(System.String)); case DbfHeader.dBaseFieldType.Unknown: return(typeof(System.Object)); case DbfHeader.dBaseFieldType.Long: return(typeof(System.Int64)); case DbfHeader.dBaseFieldType.Binary: return(typeof(System.Int64)); case DbfHeader.dBaseFieldType.AutoIncrement: return(typeof(System.Int64)); case DbfHeader.dBaseFieldType.Picture: return(typeof(System.Byte[])); case DbfHeader.dBaseFieldType.FloatingPoint: return(typeof(System.Double)); } return(typeof(System.String)); }