有这么几百页这样的数据.do_pre/FGDYEO-4341596_OH.XLS 226 0 0 239 47 -2011-02-16 06:10:51 192.168.0.254 whsfs ITDEPT 192.168.0.4 21 [276]created /prod/o_pre/FGDYEO-4341596_OD.XLS226 0 0 5812 2187 -2011-02-16 06:10:51 192.168.0.254 whsfs ITDEPT 192.168.0.4 21 [276]created /prod/do_pre/FGDYEO-4341606_OH.XLS 226 0 0 239 62 -2011-02-16 06:10:51 192.168.0.254 whsfs ITDEPT 192.168.0.4 21 [276]created /prod/do_pre/FGDYEO-4341606_OD.XLS 226 0 0 11432 313 -2011-02-16 06:14:41 192.168.0.254 whsfs ITDEPT 192.168.0.4 21 [277]USER whsfs 331 0 0 0 0 -2011-02-16 06:14:41 192.168.0.254 whsfs ITDEPT 192.168.0.4 21 [277]PASS - 230 0 0 0 0 -2011-02-16 06:14:44 192.168.0.254 whsfs ITDEPT 192.168.0.4 21 [277]CWD /prod/recv_pre ....我需要这样的数据。以do_pre开头,XLS结尾,或者recv_pre开头,.XLS结尾的为数据。数据存储在.txt文件中.比如/prod/recv_pre/FGDYEI-4342407_ID.XLS /prod/recv_pre/FGDYEI-4342406_IH.XLS /prod/recv_pre/FGDYEI-4342406_ID.XLS /prod/recv_pre/FGDYEI-4342405_IH.XLS /prod/do_pre/FGDYEO-4342527_OD.XLS /prod/do_pre/FGDYEO-4342528_OH.XLS /prod/do_pre/FGDYEO-4342528_OD.XLS 能再分类最好。比如/recv_pre/FGDYEI-4342968_IH.XLS FGDYEI-4342968_ID.XLS FGDYEI-4342967_IH.XLS /do_pre/FGDYEO-4342974_OH.XLS do_pre/FGDYEO-4341596_OH.XLS 或者recv_pre/FGDYEI-4342968_IH.XLS
#include <fstream> #include <iostream> #include <vector> #include <afx.h> using namespace std; typedef std::vector <CString> do_pre1; ; typedef std::vector <CString> recv_pre2; do_pre1::iterator i_do_pre; recv_pre2::iterator i_recv_pre; recv_pre2 recv_pre; vector <CString> do_pre; int main(int argc,char* argv[]) { char buff1[300]; fstream fff("txt.txt",ios::out|ios::in); CString strB; int ib1=-1; int ib2=-1; int ie1=-1; while(!fff.eof()) { fff.getline(buff1,299); strB = buff1; ib1 = strB.Find("do_pre"); ib2 = strB.Find("recv_pre"); ie1 = strB.Find(".XLS"); if(ib1 != -1 && ie1 != -1 && ib1 < ie1 ) { do_pre.push_back(buff1); } if( ib2 != -1 && ie1 != -1 && ib2 < ie1) { recv_pre.push_back(strB); } ib1=-1; ib2=-1; ie1=-1; } if(do_pre.size()!=0) { i_do_pre = do_pre.begin(); cout < < "-------do_pre-------" < < endl; while(i_do_pre != do_pre.end()) { cout < < (LPCTSTR)*i_do_pre < < endl; i_do_pre++; } cout < < "-------do_pre-------" < < endl; } cout < < endl; if(recv_pre.size() != 0) { cout < < "-------recv_pre-------" < < endl; i_recv_pre = recv_pre.begin(); while(i_recv_pre != recv_pre.end()) { cout < < (LPCTSTR)*i_recv_pre < < endl; i_recv_pre++; } cout < < "-------recv_pre-------" < < endl; } cout < < endl; return 0; }
