/// <summary> /// Creates a new instance of the commmand server from a file /// </summary> /// <param name="Filename">The filename of the dbf to read, edit or append to</param> public Commands(string Filename) { if (Filename == null) { throw new ArgumentNullException(Filename); } // check for the file existing here, otherwise we will not get an error //until we read the first record or read the header. if (!File.Exists(Filename)) { throw new FileNotFoundException(String.Format("Could not find file \"{0}\"", Filename)); } _Filename = Filename; dBaseReader dr = new dBaseReader(Filename); _Header = dr.GetHeader(); }
/// <summary> /// Initializes a new instance of the ShapefileDataReader class. /// </summary> /// <param name="filename">The shapefile to read (minus the .shp extension)</param> ///<param name="geometryFactory">The GeometryFactory to use.</param> public ShapefileReader(string filename, GeometryFactory geometryFactory) { if (filename == null) throw new ArgumentNullException("filename"); if (geometryFactory == null) throw new ArgumentNullException("geometryFactory"); _geometryFactory = geometryFactory; _open = true; if (filename.ToLower().EndsWith(".shp")) filename = filename.ToLower().Replace(".shp",String.Empty); _dbfReader = new dBaseReader(filename + ".dbf"); _shpReader = new ShapeReader(filename + ".shp", geometryFactory); _dbfHeader = _dbfReader.GetHeader(); _recordCount = _dbfHeader.NumRecords; // copy dbase fields to our own array. Insert into the first position, the shape column _dbaseFields = new FieldDescriptor[_dbfHeader.Fields.Length + 1]; _dbaseFields[0] = FieldDescriptor.ShapeField(); for(int i=0; i < _dbfHeader.Fields.Length; i++) _dbaseFields[i+1] = _dbfHeader.Fields[i]; _ShapeHeader = _shpReader.Header; _dbfEnumerator = _dbfReader.GetEnumerator(); _shpEnumerator = _shpReader.GetEnumerator(); _moreRecords = true; }