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(); } }
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)); } }