提取给定行中字符串的一部分:
给定的行是:
D:\AB554P_Itr23\ModelDir\AB554P_approximation_NodeData.dat Read 3/18/2010
我只需要提取文件名AB554P_approximation_NodeData.dat
。我正在使用CodeGear RAD Studio C ++ Builder。感谢:)
答案 0 :(得分:4)
您是否考虑过string::substr
答案 1 :(得分:4)
Boost::Filesystem ......
怎么样?string name = path( "D:\\AB554P_Itr23\\ModelDir\\AB554P_approximation_NodeData.dat").filename()
答案 2 :(得分:3)
RTL函数ExtractFileName()
将从路径中提取文件名。
究竟如何拆分示例中的3个字段在很大程度上取决于形成该行文本的规则。它是如何划分的?是由空格分隔?如果是这样,你如何逃避文件路径中的空格?在您指定该信息之前,您的问题的这一部分是无法回答的。
答案 3 :(得分:1)
要处理Windows路径,请使用Windows API path functions,例如PathFindFileName
。
干杯&第h。,
答案 4 :(得分:1)
string s =“D:\ AB554P_Itr23 \ ModelDir \ AB554P_approximation_NodeData.dat阅读2010年3月18日”;
size_t pos;
pos = s.find(“”);
s.erase(POS);
现在请split
为'\'分割剩下的部分。
答案 5 :(得分:0)
您可能需要调查正则表达式库,例如Boost Regex。