Exemplo n.º 1
0
            private void ReadHeader()
            {
                this._dbfHeader = new DbfReaderHelper();

                try
                {
                    this._dbfHeader.Version         = this._binaryReader.ReadSByte();   //第1字节
                    this._dbfHeader.LastModifyYear  = this._binaryReader.ReadByte();    //第2字节
                    this._dbfHeader.LastModifyMonth = this._binaryReader.ReadByte();    //第3字节
                    this._dbfHeader.LastModifyDay   = this._binaryReader.ReadByte();    //第4字节
                    this._dbfHeader.RecordCount     = this._binaryReader.ReadInt32();   //第5-8字节
                    this._dbfHeader.HeaderLength    = this._binaryReader.ReadUInt16();  //第9-10字节
                    this._dbfHeader.RecordLength    = this._binaryReader.ReadUInt16();  //第11-12字节
                    this._dbfHeader.Reserved        = this._binaryReader.ReadBytes(16); //第13-14字节
                    this._dbfHeader.TableFlag       = this._binaryReader.ReadSByte();   //第15字节
                    this._dbfHeader.CodePageFlag    = this._binaryReader.ReadSByte();   //第16字节
                    this._dbfHeader.Reserved2       = this._binaryReader.ReadBytes(2);  //第17-18字节

                    this._fieldCount = GetFieldCount();
                }
                catch
                {
                    throw new Exception("fail to read file header.");
                }
            }
Exemplo n.º 2
0
            public void Close()
            {
                this.CloseFileStream();

                _recordBuffer = null;
                _dbfHeader    = null;
                _dbfFields    = null;

                _isFileOpened = false;
                _fieldCount   = 0;
            }