diff --git a/Tools/Graphical/uPlayBack/MOOSPlayBackV2.cpp b/Tools/Graphical/uPlayBack/MOOSPlayBackV2.cpp index ac163d9..aafede6 100644 --- a/Tools/Graphical/uPlayBack/MOOSPlayBackV2.cpp +++ b/Tools/Graphical/uPlayBack/MOOSPlayBackV2.cpp @@ -284,20 +284,23 @@ bool CMOOSPlayBackV2::MessageFromLine(const std::string & sLine, CMOOSMsg &Msg) if(sData.find("") !=std::string::npos) { + + std::string sOpenTag(""), sCloseTag(""); + std::string sBinaryDataInfo = sData.substr(sData.find(sOpenTag)+sOpenTag.size(),sData.find(sCloseTag)-sData.find(sOpenTag)-sOpenTag.size()); //Msg.MarkAsBinary(); - long long nOffset; - if(!MOOSValFromString(nOffset,sData,"Offset")) - return MOOSFail("badly formed MOOS_BINARY indicator - missing \"Offset=xyz\""); std::string sFile; - if(!MOOSValFromString(sFile,sData,"File")) + if(!MOOSValFromString(sFile,sBinaryDataInfo,"File")) return MOOSFail("badly formed MOOS_BINARY indicator - missing \"File=XYZ\""); + double nOffset; + if(!MOOSValFromString(nOffset,sBinaryDataInfo,"Offset")) + return MOOSFail("badly formed MOOS_BINARY indicator - missing \"Offset=xyz\""); + int nBytes; - if(!MOOSValFromString(nBytes,sData,"Bytes")) + if(!MOOSValFromString(nBytes,sBinaryDataInfo,"Bytes")) return MOOSFail("badly formed MOOS_BINARY indicator - missing \"Bytes=xyz\""); - //corner case of binary file changing half way through a log....(Why this might happen //I don't know but catch it anyway.... if(sFile != m_sBinaryFileName && m_BinaryFile.is_open() )