私は次のようにソースコードを書かれている:ここQString :: indexOfメソッドを2単語間のスペースの数に敏感でないように指定する方法はありますか?
int main(int argc, char *argv[]) {
QFile File (directory + "/File");
if(File.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream Stream (&File);
QString FileText;
do
{
FileText = Stream.readLine();
QString s = "start";
QString e = "end here";
int start = FileText.indexOf(s, 0, Qt::CaseInsensitive);
int end = FileText.indexOf(e, Qt::CaseInsensitive);
if(start != -1){ // we found it
QString y = FileText.mid(start + s.length(), (end - (start + s.length())));
qDebug() << y << (start + s.length()) << (end - (start + s.length()));
}
}
私の問題は、int型エンド= FileText.indexOf(E、Qtの:: CASEINSENSITIVE)ということ、です。 とQString e = "end here";
は、単語 "end"と "here"の間に正確に3つのスペースがある場合にのみ見つかります。私が読んだテキストでは、これらの2つの単語の間のスペースが確かに時々違いますから、これは問題である。さらに、私は "終わり"と "ここ"の両方の言葉を書く必要があります。問題を根本的に減らそうとしましたが、誰かがアイデアや解決策を持っていることを願っています。
あなただけの「ここで終わり」と自分のストリームに「スタート」ののoccuranceを探していますか? –
私はそれらを探していて、その後、 ".mid()メソッド"でそれらの間に何を抽出しますか?確かに私はもっと多くの文字列を抽出しなければならないので、ストリーム/テキストでもっと多くの単語を検索しなければなりません。 – Streight