/// <summary> /// Search and read found records. /// </summary> public IrbisRecord[] SearchReadSimple ( string key ) { int[] mfns = InvertedFile.SearchSimple(key); List <IrbisRecord> result = new List <IrbisRecord>(); foreach (int mfn in mfns) { try { XrfRecord32 xrfRecord = Xrf.ReadRecord(mfn); if (!xrfRecord.Deleted) { MstRecord32 mstRecord = Mst.ReadRecord2(xrfRecord.AbsoluteOffset); if (!mstRecord.Deleted) { IrbisRecord irbisRecord = mstRecord.DecodeRecord(); irbisRecord.Database = Database; result.Add(irbisRecord); } } } catch (Exception ex) { Debug.WriteLine(ex); } } return(result.ToArray()); }
//public IrbisRecord ReadRecord2 // ( // int mfn // ) //{ // XrfRecord64 xrfRecord = Xrf.ReadRecord(mfn); // MstRecord32 mstRecord = Mst.ReadRecord2(xrfRecord.Offset); // IrbisRecord result = mstRecord.DecodeRecord(); // result.Database = Database; // return result; //} /// <summary> /// Simple search. /// </summary> public int[] SearchSimple ( string key ) { int[] mfns = InvertedFile.SearchSimple(key); List <int> result = new List <int>(); foreach (int mfn in mfns) { if (!Xrf.ReadRecord(mfn).Deleted) { result.Add(mfn); } } return(result.ToArray()); }