要求 - > 从字符串中提取子字符串。存储的字以粗体显示
示例字符串 - > “2012年12月10日23:04:20 [pid 3194] [ftp] 确定上传:客户端”192.168.10.14“,” /pub/upload/Untitleppppp.txt“, 80字节,0.62Kbyte / sec ”//此示例字符串是通过其他函数从ftp日志中检索的。
我已经实现了从上面的字符串中提取值的函数。如果我的方法是对的,我不是很有信心吗?你们能不能发表意见了。
其次,在将来,我想要获取没有传输的字节,这是样本字符串中的80个字节,我将如何实现。目前,我的函数通过空格分隔符将字符串分解为向量,因此如果想知道没有字节,我会得到80而不是80字节。如果上传或下载失败,我们不会收到此子字符串。
任何想法对我都有帮助。
bool SplitString( const std::string& logString, std::string& type, std::string& status, std::string& speed )
{
bool result = true;
std::vector<std::string> splitVector ;
// split the string and puhback into vector.
boost::split(splitVector,logString, boost::is_any_of("\t "));
typedef std::vector<std::string>::const_iterator iter;
iter iterString = find(splitVector.begin(), splitVector.end(), "[ftp]") ;
if( iterString == splitVector.end() )
{
std::cout <<"Ftp Log is requested .. But this is not a ftp log try again" ;
result = false;
}
if( result == true )
{
std::cout << " pos val = " << *iterString ;
status = *(++iterString);
type = *(++iterString);
speed = splitVector.back();
}
return result;
}
谢谢和问候, 萨曼莎