ファイル名の拡張子を入力テキストファイルから文字列ベクトルに抽出する必要があります。 入力テキストファイルはかなり乱雑で、一部のアプリケーションの設定ファイルとして機能します。テキストファイルからファイル名を抽出する
私が抽出しようとしているファイル名について知っているのは、 'file ='という言葉が前に付いていて、ファイル名が ''か ''の間で引用されているということです。例:file = "name.abc"私はまた、どのようにスペースがあるかについては保証していません:file = "name.abc"、file = "name.abc"、file = "name.abc" ...そして拡張子は異なる長さにすることができます。
だから私は、次のコードを試してみました:
std::vector<std::string> attachment_names;
std::istringstream words(text_content);
std::string word;
std::string pst_extension(".abc"); // My code should support any extension
while (words >> word)
{
auto extension_found = word.find(abc_extension);
if (extension_found != word.npos)
{
auto name_start = word.find("'") + 1;
//I am not even sure the file is quoted by ''
std::string attachment_name = word.substr(name_start, (extension_found + 3) - name_start + 1);
//Doing this annoys me a bit... Especially that the extension may be longer than 3 characters
attachment_names.push_back(attachment_name);
}
}
は、これを行うのよりよい方法はありますか?任意の拡張子をサポートするためにファイルキャプションにもっと頼る可能性はありますか?
お待ちください、コードレビューをお探しですか?もしそうなら、あなたは[codereview.se]を見たいかもしれません。 – Rakete1111
私はこのコミュニティについて知りませんでした、ありがとうございました! :) –
あなたの質問が実際にトピックであることを確認し、それを適切に修正するために、そこにヘルプセンターを読みたいかもしれません:)ありがとう – Rakete1111