3

ファイルの読み取りに問題があります。具体的には、小さな辞書を作成したいということです。私が読む必要があるファイルには、次のような内容があります。

a   Ph  P6
a   snsr    CA
a b c   fb  Dj
a b c - book    i+  BS
A except B gate oOPa    y
a font  kQ  BU
[....]

約109.000行あり、ファイルのサイズは約2MBです。私の QT アプリでは、次のようにコーディングして項目を読み取って QListWidget に追加しました。

QString sWord;
QFile inFile("C:\\EV\\ev.index");

inFile.open(QIODevice::ReadOnly|QIODevice::Text);
QTextStream in(&inFile);
while(!in.atEnd())
{
     sWord = in.readLine();
     myListWidget->addItem(sWord); //myListWidget is a QListWidget
}

しかし、それは長すぎます!最初は、アプリが行ごとに読み取ることが理由だと思うので、次のように再度コーディングしました。

QString data;
QStringList listWord;
QFile inFile("C:\\EV\\ev.index");


inFile.open(QIODevice::ReadOnly|QIODevice::Text);
QTextStream in(&inFile);
data.append(in.readAll());
listWord.append(data.split('\n'));
myListWidget->addItems(listWord);
inFile.close();

(アプリ起動から約5秒) まだまだ長いので、もっと早く読みたいです。私がしなければならないこと?

4

1 に答える 1