stardict字典文件格式识别类

本文介绍了一个名为nStarDict的.NET类库,该工具用于读取星愿词典(.dict)文件,并提供词典查询功能。通过该类库可以获取指定词汇的所有可能匹配项及其对应的解释。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.IO;
usingSystem.Linq;
usingSystem.Text;

namespacecn.Laiyunqing
{
publicclassnStarDict
{
privatestringidxFile;
privatestringdictFile;

publicnStarDict(stringidx,stringdict)
{
this.idxFile=idx;
this.dictFile=dict;
}

publicList<string>Words(stringkey)
{
List
<string>words=newList<string>();
FileStreamfsIdx
=newFileStream(this.idxFile,FileMode.Open,FileAccess.Read);
BinaryReaderbrIdx
=newBinaryReader(fsIdx,Encoding.UTF8);
byte[]ch=newbyte[4096];
byteend=(byte)'';
intindex=0;
for(index=0;index<4096;index++)
ch[index]
=(byte)'';
index
=0;
while(true)
{
try
{
ch[index]
=brIdx.ReadByte();
index
++;
}
catch(EndOfStreamException)
{
break;
}
if(ch[index-1]==end)
{
byte[]word=newbyte[index-1];
for(inti=0;i<index-1;i++)
{
word[i]
=ch[i];
ch[i]
=0;
}
stringqueryString=Encoding.UTF8.GetString(word);
if(queryString.StartsWith(key,true,System.Globalization.CultureInfo.CurrentCulture))
{
words.Add(queryString);
}
}
}
brIdx.Close();
fsIdx.Close();
returnwords;
}

publicstringResult(stringoriginalText)
{
stringtranslatedText=string.Empty;
FileStreamfsIdx
=newFileStream(this.idxFile,FileMode.Open,FileAccess.Read);
BinaryReaderbrIdx
=newBinaryReader(fsIdx,Encoding.UTF8);
FileStreamfsDict
=newFileStream(this.dictFile,FileMode.Open,FileAccess.Read);
BinaryReaderbrDict
=newBinaryReader(fsDict,Encoding.UTF8);
byte[]ch=newbyte[4096];
byteend=(byte)'';
intpos,size;
intindex=0;
for(index=0;index<4096;index++)
ch[index]
=(byte)'';
index
=0;
while(true)
{
try
{
ch[index]
=brIdx.ReadByte();
index
++;
}
catch(EndOfStreamException)
{
break;
}
if(ch[index-1]==end)
{
byte[]word=newbyte[index-1];
for(inti=0;i<index-1;i++)
{
word[i]
=ch[i];
ch[i]
=0;
}
stringqueryString=Encoding.UTF8.GetString(word);

index
=0;
byte[]tmp=brIdx.ReadBytes(4);
pos
=tmp[3]+(tmp[2]<<8)+(tmp[1]<<16)+(tmp[0]<<24);
tmp
=brIdx.ReadBytes(4);
size
=tmp[3]+(tmp[2]<<8)+(tmp[1]<<16)+(tmp[0]<<24);
byte[]content=brDict.ReadBytes(size);
stringoutText=Encoding.UTF8.GetString(content).Replace(" ","</br>")+"</br>";
//是查询的单词
if(queryString==originalText)
{
translatedText
=outText;
break;
}
}
}
brDict.Close();
fsDict.Close();
brIdx.Close();
fsIdx.Close();
returntranslatedText;
}

}
}
安装说明:http://blog.youkuaiyun.com/love254443233/article/details/39056173 安装说明: 1:sudo apt-get install stardict 2:全部解压到temp文件夹中 3:sudo mv temp/* /usr/share/stardict/dic 3:重启星际译王 包含的词库zh_CN 简体中文词典.html中所有汉语+英汉词库 cdict-gb dictionary(en - zh_CN) tarbal GPL, 4.5M, 57510 words stardict1.3 dictionary(en - zh_CN) tarbal GPL, 1.1M, 51214 words Sun Dict(en - zh_CN) tarbal GPL, 1M, 33042 words xdict-ec-gb dictionary(en - zh_CN) tarbal GPL, 3.6M, 177817 words xdict-ce-gb dictionary(zh_CN - en) tarbal GPL, 2.4M, 160995 words. cedict-gb dictionary(zh_CN - en) tarbal CEDICT LICENCE, 0.7M, 31200 words. 推荐! langdao-ec-gb dictionary(en - zh_CN) 朗道英汉字典 tarbal GPL, 9.1M, 435468 words. 推荐! langdao-ce-gb dictionary(zh_CN - en) 朗道汉英字典 tarbal GPL, 7.8M, 405719 words. 推荐! lazyworm-ec dictionary(en - zh_CN) 懒虫简明英汉词典 tarbal GPL, 10M, 452185 words. lazyworm-ce dictionary(zh_CN - en) 懒虫简明汉英词典 tarbal GPL, 1.7M, 119592 words. 新华字典 tarbal GPL, 8.9M, 74025 words. ProECCE dictionary 英汉汉英专业词典 tarbal GPL, 8.6M, 571998 words. Hanzi Master (zh_CN - en) tarbal GPL, 427K, 25992 words XiangYa Medical dictionary 湘雅医学专业词典 tarbal GPL, 28M, 1479322 words Advance Chinese big dictionary (zh_CN - zh_CN) 高级汉语大词典 tarbal GPL, 6.3M, 51675 words Advance Chinese big dictionary (zh_CN - zh_CN) 高级汉语大词典(修正版) tarbal GPL, 6.3M, 51675 words International standard Chinese big dictionary (zh_CN - zh_CN) 国际标准汉字大辞典 tarbal GPL, 1.5M, 45053 words Chinese idiom dictionary (zh_CN - zh_CN) 汉语成语词典 tarbal GPL, 2M, 24702 words Chinese idiom dictionary (zh_CN - zh_CN) 汉语成语词典(修正版) tarbal GPL, 1.9M, 13001 words 汉语成语词典(美化版) tarbal GPL, 2.8M, 13305 words Modern Chinese dictionary (zh_CN - zh_CN) 现代汉语词典 tarbal GPL, 3.3M, 57643 words Modern Chinese dictionary (zh_CN - zh_CN) 现代汉语词典(修正版) tarbal GPL, 3.2M, 57691 words 21 century bidirectional dictionary 21世纪英汉汉英双向词典 tarbal GPL, 13M, 213723 words quick_eng-zh_CN 英汉专业词典 tarball GPL, 10.7M, 634008 words 21 century bidirectional science and technology dictionary 21世纪双语科技词典 tarball GPL, 15M, 809486 words nc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值