예제 #1
0
        public void Load()
        {
            BinaryReader reader = new BinaryReader(File.Open(Name, FileMode.Open));

            while (reader.BaseStream.Length != reader.BaseStream.Position)
            {
                RecordDescription description = RecordDescription.LoadRecordFromType(reader);
                if (description == null)
                {
                    break;
                }
                description.Load(reader);
                AddDescription(description);
            }
            // read the records
            int count = Description.Count;

            if (count <= 0)
            {
                reader.Close();
                throw new Exception("Database corrupted");
            }
            while (reader.BaseStream.Length != reader.BaseStream.Position)
            {
                Record record = new Record(count);
                for (int i = 0; i < Description.Count; i++)
                {
                    Value val = Description[i].PresetValue.Clone();
                    val.Load(reader);
                    record.SetValue(val, i);
                }
                AddRecord(record);
            }
            reader.Close();
        }