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;
}
}
}
分享到:
相关推荐
在Linux系统中,Stardict通常将字典文件存储在 `/usr/share/stardict/dict/` 目录下。安装或更新词典时,你需要将下载的压缩包文件解压,然后将解压后的文件移动到这个特定的目录。在提供的信息中,压缩包文件名为 `...
NULL 博文链接:https://msino.iteye.com/blog/361888
星际译王的词典文件是二进制格式,包含词汇、释义、例句等信息,以提高查词速度。 在描述中提到,你需要将解压后的文件放在“/usr/share/stardict/dict/”目录下。这个路径通常是Linux系统中星际译王查找词典文件的...
《常用stardict字典详解》 在信息技术领域,词汇量的积累对于学习和工作至关重要。stardict,作为一款开源、跨平台的词典软件,因其高效、便捷的特性,受到了众多用户的喜爱。本文将深入探讨stardict及其常用的词典...
标题中的"stardict字典-oxford"指的是这款软件中的一款词典资源,即牛津词典。牛津词典是世界上最权威的英语词典之一,提供详尽的英语词汇解释、例句、短语和用法指导,对于学习者来说是不可或缺的工具。 在描述中...
stardict是linux下最好的字典,这是几个字典的压缩合集,包括牛津字典,朗道字典等,里面包含安装执行脚本,sudo ./install_dicts.sh就可以安装,stardict启动时会自动加载
本话题将深入探讨如何使用C++来读取Stardict字典文件并将其转换为SQL格式,以便于进一步的数据分析和处理。 首先,我们需要理解Stardict的文件结构。Stardict采用一种高效的存储方式,包括词典索引文件(.idx)和...
Stardict 牛津 英漢字典 中文繁體
在提供的压缩包"stardict离线字典"中,可能包含以下文件和文件夹: - `dict.ifo`:词典信息文件,包含了词典的基本信息,如词典名称、作者、版本等。 - `dict.dic`:词典数据文件,存储了词汇和释义。 - `word....
文件名为“stardict-langdao-ce-gb-2.4.2”可能表示这是一个2.4.2版本的郎道中英字典,"ce"可能代表“Chinese-English”,"gb"可能是“Great Britain”的缩写,暗示该字典可能基于英国英语的规范。 在解压后,将...
输入你所要查的单词,即可查出对应字典中的翻译解释,注意单词后不可有空格 把字典放到sdcard/dict/字典名/中,字典名文件夹中包括字典名.dict,字典名.idx文件。在实际应用中需做进一步的优化
实用的英语字根词库,小巧,助记。解压到stardict的dic字典目录下即可。
首先,我们需要了解stardict的词典文件格式。Stardict 的词典文件通常包含索引文件(.idx)、数据文件(.dict.dz)和词典词头文件(.hd)。索引文件记录了单词在数据文件中的位置,数据文件存储了完整的词典内容,而...
获取与stardict兼容程序使用的最新文件。 选项: 请参阅提示 只需下载并解压缩以下存档之一: 通常非常过时的 字典程序建议和下载帮助(特别是对于移动设备) 组织 字典存储在下的多个存储库中,例如:stardict-...
stardict 英汉 懒虫 字典 stardict 英汉 懒虫 字典 stardict 英汉 懒虫 字典
这款小巧的应用程序可以将 Stardict 字典文件转换为 Mac Dictionary 能识别的格式,让 Mac 用户也能享受到 Stardict 的强大功能。通过 DictUnifer,用户只需简单几步操作,就能把 Stardict 字典导入到 Mac 的 ...
3. 打开终端,使用`mv`命令将解压后的字典文件移动到stardict的dict目录下,通常路径为`/usr/share/stardict/dict/`。例如:`sudo mv stardict-langdao-ec-gb-2.4.2 /usr/share/stardict/dict/`。 4. 安装完成后,...
有感于下载太辛辛苦苦,特上传,各位给点小分偶用用