////////////////////////////////////////////////////////////////////////////
 //--------------------------------- REVISIONS ------------------------------
 // Date       Name                 Tracking #         Description
 // ---------  -------------------  -------------      ----------------------
 // 21JUN2009  James Shen                 	          Initial Creation
 ////////////////////////////////////////////////////////////////////////////
 /**
  * constructor.
  */
 public TabularData(BinaryReader reader, long offset, long size,
         DataField[] fields, StringData stringData, StringIndex stringIndex)
     : base(reader, offset, size)
 {
     this._fields = fields;
     this._stringData = stringData;
     this._stringIndex = stringIndex;
     int numberOfField = fields.Length;
     _recordSize = 0;
     for (int i = 0; i < numberOfField; i++)
     {
         switch (fields[i].GetFieldType())
         {
             case DataField.TYPE_CHAR://char
                 _recordSize += 4;
                 break;
             case DataField.TYPE_INTEGER://int
                 _recordSize += 4;
                 break;
             case DataField.TYPE_SMALLINT://shot
                 _recordSize += 2;
                 break;
             case DataField.TYPE_FLOAT://float
                 _recordSize += 8;
                 break;
             case DataField.TYPE_DECIMAL://float
                 _recordSize += 8;
                 break;
             case DataField.TYPE_DATE://date
                 _recordSize += 4;
                 break;
             case DataField.TYPE_LOGICAL://bool
                 _recordSize += 1;
                 break;
         }
     }
 }
Beispiel #2
0
        ////////////////////////////////////////////////////////////////////////////
        //--------------------------------- REVISIONS ------------------------------
        // Date       Name                 Tracking #         Description
        // ---------  -------------------  -------------      ----------------------
        // 21JUN2009  James Shen                 	          Initial Creation
        ////////////////////////////////////////////////////////////////////////////
        /**
         * Open the map file.
         */
        public void Open()
        {
            if (Header != null)
            {
                return;
            }

            Header = new Header(_reader, 0, 0);
            _recordIndex = new RecordIndex(_reader, Header.IndexOffset,
                    Header.IndexLength);
            _stringIndex = new StringIndex(_reader, Header.StringIndexOffset,
                    Header.StringIndexLength);
            _stringData = new StringData(_reader, Header.StringDataOffset,
                    Header.StringDataLength);
            _geoData = new GeoData(_reader, Header.GeoDataOffset,
                    Header.GeoDataLength);
            TabularData = new TabularData(_reader, Header.TabularDataOffset,
                    Header.TabularDataLength, Header.Fields,
                    _stringData, _stringIndex);
            _rtreeIndex = new RTreeIndex(_reader, Header.RtreeIndexOffset,
                    Header.RtreeIndexLength);
            _tree = new RTree.RTree(_rtreeIndex.File);
        }