/// <summary> /// Reads the object data from a dump store /// </summary> /// <param name="reader">reader to read the data</param> /// <param name="filesList">filelist from helpsystem</param> internal bool ReadDump(ref BinaryReader reader, ArrayList filesList) { int i = 0; _keyWord = reader.ReadString(); _isSeeAlso = reader.ReadBoolean(); _indent = reader.ReadInt32(); _chmFileName = reader.ReadString(); foreach (CHMFile curFile in filesList) { if (curFile.ChmFilePath == _chmFileName) { _chmFile = curFile; break; } } if (_chmFile == null) { return(false); } int nCnt = reader.ReadInt32(); for (i = 0; i < nCnt; i++) { string sIT = reader.ReadString(); _infoTypeStrings.Add(sIT); } nCnt = reader.ReadInt32(); _seeAlso = new string[nCnt]; for (i = 0; i < nCnt; i++) { _seeAlso[i] = reader.ReadString(); } nCnt = reader.ReadInt32(); for (i = 0; i < nCnt; i++) { IndexTopic topic = new IndexTopic("", "", "", ""); topic.SetChmInfo(_chmFile.CompileFile, _chmFile.ChmFilePath); topic.AssociatedFile = _chmFile; topic.ReadDump(ref reader); Topics.Add(topic); } return(true); }
/// <summary> /// Dump the class data to a binary writer /// </summary> /// <param name="writer">writer to write the data</param> /// <param name="writeFileName">true if the chm filename should be written</param> internal void Dump(ref BinaryWriter writer, bool writeFileName) { int i = 0; writer.Write(_keyWord); writer.Write(_isSeeAlso); writer.Write(_indent); if (writeFileName) { writer.Write(_chmFileName); } writer.Write(_infoTypeStrings.Count); for (i = 0; i < _infoTypeStrings.Count; i++) { writer.Write((_infoTypeStrings[i]).ToString()); } writer.Write(_seeAlso.Length); for (i = 0; i < _seeAlso.Length; i++) { if (_seeAlso[i] == null) { writer.Write(""); } else { writer.Write(_seeAlso[i]); } } writer.Write(Topics.Count); for (i = 0; i < Topics.Count; i++) { IndexTopic topic = ((IndexTopic)(Topics[i])); topic.Dump(ref writer); } }
/// <summary> /// Reads the object data from a dump store /// </summary> /// <param name="reader">reader to read the data</param> internal void ReadDump(ref BinaryReader reader) { int i = 0; _keyWord = reader.ReadString(); _isSeeAlso = reader.ReadBoolean(); _indent = reader.ReadInt32(); int nCnt = reader.ReadInt32(); for (i = 0; i < nCnt; i++) { string sIT = reader.ReadString(); _infoTypeStrings.Add(sIT); } nCnt = reader.ReadInt32(); _seeAlso = new string[nCnt]; for (i = 0; i < nCnt; i++) { _seeAlso[i] = reader.ReadString(); } nCnt = reader.ReadInt32(); for (i = 0; i < nCnt; i++) { IndexTopic topic = new IndexTopic("", "", "", ""); topic.AssociatedFile = _chmFile; topic.SetChmInfo(_chmFile.CompileFile, _chmFile.ChmFilePath); topic.ReadDump(ref reader); Topics.Add(topic); } }