0

ディレクトリ内のファイル名をチェックし、特定の基準に従っていることを確認するプログラムを作成しています。これらの基準の 1 つは、ファイル名の末尾に「file1V01.txt、file1V02.txt. ..file1V99.txt".

私は、「v01」から「v99」までを含む99の長さの文字列配列を使用して、ファイル名文字列に対してcontains関数を実行して、その瞬間に動作させました。

私の質問は、ファイルごとに 99 の長い配列をチェックするのは非常に非効率的であるため、これをより効率的にする方法があるかどうかです。2 つ目は、ファイル タイプ (.txt や .docx など) の前の最後の 3 文字のみをチェックすることです。「reallylongfilenamev01.txt」をチェックするのではなく、「v01」.txtをチェックするだけです

お時間をいただきありがとうございます。

     for(int i=0;i<99;++i)
     {
        versioncheck = name.contains(version[i]);
     }
4

1 に答える 1

0

正規表現を使用してこれを自分で修正しました。上記の例では、次を使用しました。

意味:

QRegExp re("^([V][\\d]*)");

そして実装:

if(re3.exactMatch(name.mid(name.length()-10,10)))
{

}
于 2013-11-27T12:31:16.430 に答える