Esempio n. 1
0
        public IndexFile(String asFilePath, int aiBufferSize)
        {
            msFilePath      = asFilePath;
            miBufferRowSize = aiBufferSize;
            mBuffer         = new IndexRow[miBufferRowSize];
            for (int i = 0; i < miBufferRowSize; i++)
            {
                mBuffer[i] = new IndexRow(0);
            }

            if (!File.Exists(msFilePath))                       //If no file, create one and write preambule
            {
                using (FileStream lFileStream = File.Open(msFilePath, FileMode.Create, FileAccess.Write))
                {
                    using (BinaryWriter lBinWriter = new BinaryWriter(lFileStream))
                    {
                        lBinWriter.Write((int)0);                               //Row count
                        DiscAccesses++;
                    }
                }
            }
            else
            {
                ReadRowCount();
            }
        }
Esempio n. 2
0
 private void ReadBuffer(BinaryReader aBinReader)
 {
     byte[] lbBuffer = aBinReader.ReadBytes(miBufferRowSize * IndexRow.rowSize);
     DiscAccesses++;
     mBuffer = new IndexRow[lbBuffer.Length / IndexRow.rowSize];
     for (int i = 0; i < mBuffer.Length; i++)
     {
         mBuffer[i] = new IndexRow(0);
     }
     for (int i = 0; i < mBuffer.Length; i++)
     {
         mBuffer[i].key = BitConverter.ToInt32(lbBuffer, i * sizeof(int));
     }
 }