我打算做一个僧伽罗文英语字典。所以我有一个文件,其中包含僧伽罗文含义的每一个英语单词。所以我想加载它,而形式是加载。所以我添加了以下命令,以获得所有文件内容的字符串变量。所以我用以下命令在FormLoad方法,
private string DictionaryWords = "";
private string ss = null;
...
private void Form1_Load(object sender, EventArgs e)
{
this.BackColor = ColorTranslator.FromHtml("#AFC3E0");
string fileName = @"SI-utf8.Txt";
using (StreamReader sr = File.OpenText(fileName))
{
while ((ss = sr.ReadLine()) != null)
{
DictionaryWords += ss;
}
}
}
但不幸的是,该txt文件有130000+行,它的大小超过5MB。所以我的winform没有加载。
见图像
我需要加载这个更快的winform使用REGEX形式得到正确的含义,为每一个英语单词..谁能告诉我一个方法来做到这一点。我尝试了一切。
加载这个巨大的文件到我的项目内15多少,需要使用正则表达式查找每个英语单词。
1条答案
按热度按时间wljmcqd81#
好吧,代码太少了。我怀疑
是重罪犯追加字符串
130000
次,这意味着 * 重新创建 * 相当长的字符串 * 一遍又一遍 * 可以很好地让系统屈服,但我没有严格的证明(我在评论中询问了DictionaryWords
)。这就是为什么让我试着从头开始解决这个问题。
SI-utf8.Txt
的(长)字典。我有这样的东西:
然后我们需要一个翻译部分:
用法:
DictionaryWords
是string
,因此是一个 * felon *。请不要在(深度)循环中追加
string
:每个append * 重新创建 * 字符串,这是很慢的。如果你坚持循环,使用StringBuilder
:或者,为什么要循环呢?让. net来为您做这些工作:
DictionaryWords += ss;
* 一个人 * 会破坏乐趣),您可以坚持使用简单的同步解决方案:那么用法就很简单了: