Example #1
0
 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);
 }
Example #2
0
 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);
 }
Example #3
0
        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
        }
Example #4
0
 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);
 }
Example #5
0
        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));
        }
Example #6
0
        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
        }
Example #7
0
 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);
 }
Example #8
0
 public void TestStarDictIdx()
 {
     var info = new StarDictInfo("data/jargon.ifo");
     var idx = new StarDictIdx(info);
 }