StarDict(StarDictInfo info, IDictIDX idx, string fname, Encoding enc) { _enc = enc ?? Encoding.UTF8; _info = info; _idx = idx; _db = fname.EndsWith("dz") ? (IDictDB)DictZip.OpenRead(fname) : (IDictDB)new TxtDictDB(fname); }
StarDict(StarDictInfo info, IDictIDX idx, string fname, Encoding enc) { _enc = enc ?? Encoding.UTF8; _info = info; _idx = idx; _db = fname.EndsWith("dz") ? (IDictDB)DictZip.OpenRead(fname) : (IDictDB) new TxtDictDB(fname); }
public StarDictIdx(StarDictInfo info, Encoding enc = null) { _enc = enc ?? Encoding.UTF8; _offsetSize = info.PointerSize; _nEntries = info.NumberOfEntries; string fname = info.BaseName + ".idx"; if (File.Exists(fname)) { _table = new TxtHeteroIdxTable(fname, MeasureEntryLength); } else { _table = new StrHeteroIdxTable(fname + ".gz", MeasureEntryLength); } //create and populate the index of index _idxIdx = new int[_nEntries + 1]; for (int cnt = 1, offset = 0; cnt < _nEntries; ++cnt) { _idxIdx[cnt] = offset = _table.FindNext(offset); } _idxIdx[_nEntries] = info.IndexFileSize; //last sentry }
public static StarDict TryOpen(string basename, Encoding enc = null) { var info = new StarDictInfo(basename + ".ifo"); if (!info.IsValid) return null; StarDictIdx idx = new StarDictIdx(info); return new StarDict(info, idx, basename + (File.Exists(basename + ".dict") ? ".dict" : ".dict.dz"),enc); }
public static StarDict TryOpen(string basename, Encoding enc = null) { var info = new StarDictInfo(basename + ".ifo"); if (!info.IsValid) { return(null); } StarDictIdx idx = new StarDictIdx(info); return(new StarDict(info, idx, basename + (File.Exists(basename + ".dict") ? ".dict" : ".dict.dz"), enc)); }
public StarDictIdx(StarDictInfo info, Encoding enc = null) { _enc = enc ?? Encoding.UTF8; _offsetSize = info.PointerSize; _nEntries = info.NumberOfEntries; string fname = info.BaseName + ".idx"; if (File.Exists(fname)) _table = new TxtHeteroIdxTable(fname, MeasureEntryLength); else _table = new StrHeteroIdxTable(fname + ".gz", MeasureEntryLength); //create and populate the index of index _idxIdx = new int[_nEntries + 1]; for (int cnt = 1, offset = 0; cnt < _nEntries; ++cnt) { _idxIdx[cnt] = offset = _table.FindNext(offset); } _idxIdx[_nEntries] = info.IndexFileSize;//last sentry }
public void TestStarDictInfo() { var info = new StarDictInfo(Path.GetFullPath( @"data/jargon.ifo")); Assert.AreEqual("jargon.ifo",Path.GetFileName(info.FileName)); Assert.AreEqual(4,info.PointerSize); Assert.AreEqual("jargon",Path.GetFileName(info.BaseName)); Assert.AreEqual('m',info.TypeMark); Console.WriteLine(info.BaseName); }
public void TestStarDictIdx() { var info = new StarDictInfo("data/jargon.ifo"); var idx = new StarDictIdx(info); }