public void Open()
{
try
{
_stream = new FileStream(_file, FileMode.Open, FileAccess.Read);
_binaryReader = new BinaryReader(_stream);
_binaryWriter = null;
bool isEncogFile = true;
isEncogFile = isEncogFile ? _binaryReader.ReadByte() == 'E' : false;
isEncogFile = isEncogFile ? _binaryReader.ReadByte() == 'N' : false;
isEncogFile = isEncogFile ? _binaryReader.ReadByte() == 'C' : false;
isEncogFile = isEncogFile ? _binaryReader.ReadByte() == 'O' : false;
isEncogFile = isEncogFile ? _binaryReader.ReadByte() == 'G' : false;
isEncogFile = isEncogFile ? _binaryReader.ReadByte() == '-' : false;
if (!isEncogFile)
{
throw new BufferedDataError(
"File is not a valid Encog binary file:"
+ _file);
}
var v1 = (char) _binaryReader.ReadByte();
var v2 = (char) _binaryReader.ReadByte();
String versionStr = "" + v1 + v2;
try
{
int version = int.Parse(versionStr);
if (version > 0)
{
throw new BufferedDataError(
"File is from a newer version of Encog than is currently in use.");
}
}
catch (Exception)
{
throw new BufferedDataError("File has invalid version number.");
}
_inputCount = (int) _binaryReader.ReadDouble();
_idealCount = (int) _binaryReader.ReadDouble();
_recordCount = _inputCount + _idealCount + 1;
_recordSize = _recordCount*DoubleSize;
_numberOfRecords = (int) ((_stream.Length - HeaderSize)/_recordSize);
}
catch (IOException ex)
{
throw new BufferedDataError(ex);
}
}