青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數(shù)據(jù)加載中……

內(nèi)存搜索與解析

char*            MemFind(const void* src_buf, int src_len, const void* find_buf, int find_len);
BOOL            ParserMem(const void* src_buf, int src_len, const vector< vector<char> >& vec_par, vector< vector<char> >& vec_result);//---- 多重二進制分割
BOOL            ParserMem(const void* src_buf, int src_len, const vector<char>& vec_par, vector< vector<char> >& vec_result);//---- 單層二進制分割
BOOL            ParserMem(const void* src_buf, int src_len, const char* par_buf, vector< vector<char> >& vec_result);//---- 字符分割
BOOL            ParserMem(const void* src_buf, int src_len, const char* par_buf, vector<string>& vec_result);//---- 字符分割

 

char* Glob_Fun::MemFind(const void* src_buf, int src_len, const void* find_buf, int find_len)
{
    if ((NULL == src_buf) || (NULL == find_buf)
        || (src_len <= 0) || (find_len <= 0))
        return NULL;

    char*cp = (char*)src_buf;
    char*src_end = (char*)src_buf +  src_len;
    char*find_end = (char*)find_buf + find_len;
    char*s_src = NULL, *s_find = NULL;
    while (cp < src_end)
    {
        s_src = cp;
        s_find = (char*)find_buf;
        while (s_src < src_end && s_find < find_end && *s_src == *s_find)
            ++s_src, ++s_find;
        if (s_find == find_end)
            return(cp);
        ++cp;
    }
    return(NULL);
}

BOOL Glob_Fun::ParserMem(
                         const void*                    src_buf,
                         int                            src_len,
                         const vector< vector<char> >&    vec_par,
                         vector< vector<char> >&        vec_result)
{
    if ((NULL == src_buf) || (src_len <= 0) || vec_par.size() <= 0)
        return FALSE;
    for (size_t t = 0; t < vec_par.size(); ++t)
    {
        if(0 >= vec_par[t].size())
            return FALSE;
    }

    vec_result.clear();

    vector<char> vec_tmp;
    BOOL bMatched = FALSE;
    int nParCount = vec_par.size();
    int nParTick = 0;
    char*cp = (char*)src_buf;
    char*src_end = (char*)src_buf +  src_len;
    int  nParLen = (int)vec_par[0].size();
    char*find_buf = (char*)&(vec_par[0][0]);
    char*find_end = find_buf + nParLen;
    char*s_src = NULL, *s_find = NULL;

    while (cp < src_end)
    {
        s_src = cp;
        s_find = (char*)find_buf;
        while (s_src < src_end && s_find < find_end && *s_src == *s_find)
            ++s_src,++s_find;
        if (s_find == find_end)
        {   
            bMatched = TRUE;
            cp += nParLen;
            vec_result.push_back(vec_tmp);
            vec_tmp.clear();
            ++nParTick;
            if(nParCount == nParTick)
                nParTick = 0;
            nParLen = (int)(vec_par[nParTick].size());
            find_buf = (char*)&(vec_par[nParTick][0]);
            find_end = find_buf + nParLen;            
        }
        else
        {
            vec_tmp.push_back(*cp);
            ++cp;
        }
    }
    if(TRUE == bMatched)
        vec_result.push_back(vec_tmp);
    return(bMatched);
}

BOOL Glob_Fun::ParserMem(
                         const void*                    src_buf,
                         int                            src_len,
                         const vector<char>&            vec_par,
                         vector< vector<char> >&        vec_result)
{
    if ((NULL == src_buf) || (src_len <= 0) || vec_par.size() <= 0)
        return FALSE;
    vec_result.clear();

    vector<char> vec_tmp;
    BOOL bMatched = FALSE;
    char*cp = (char*)src_buf;
    char*src_end = (char*)src_buf +  src_len;
    int  nParLen = (int)vec_par.size();
    char*find_buf = (char*)&(vec_par[0]);
    char*find_end = find_buf + nParLen;
    char*s_src = NULL, *s_find = NULL;

    while (cp < src_end)
    {
        s_src = cp;
        s_find = (char*)find_buf;
        while (s_src < src_end && s_find < find_end && *s_src == *s_find)
            ++s_src, ++s_find;
        if (s_find == find_end)
        {   
            bMatched = TRUE;
            cp += nParLen;
            vec_result.push_back(vec_tmp);
            vec_tmp.clear();        
        }
        else
        {
            vec_tmp.push_back(*cp);
            ++cp;
        }
    }
    if(TRUE == bMatched)
        vec_result.push_back(vec_tmp);
    return(bMatched);
}

BOOL Glob_Fun::ParserMem(
                         const void*                    src_buf,
                         int                            src_len,
                         const char*                    par_buf,
                         vector< vector<char> >&        vec_result)
{
    if ((NULL == src_buf) || (src_len <= 0) || strlen(par_buf) <= 0)
        return FALSE;
    vec_result.clear();

    vector<char> vec_tmp;
    BOOL bMatched = FALSE;
    char*cp = (char*)src_buf;
    char*src_end = (char*)src_buf +  src_len;
    int  nParLen = strlen(par_buf);
    char*find_buf = (char*)par_buf;
    char*find_end = find_buf + nParLen;
    char*s_src = NULL, *s_find = NULL;

    while (cp < src_end)
    {
        s_src = cp;
        s_find = (char*)find_buf;
        while (s_src < src_end && s_find < find_end && *s_src == *s_find)
            ++s_src, ++s_find;
        if (s_find == find_end)
        {   
            bMatched = TRUE;
            cp += nParLen;
            vec_result.push_back(vec_tmp);
            vec_tmp.clear();        
        }
        else
        {
            vec_tmp.push_back(*cp);
            ++cp;
        }
    }
    if(TRUE == bMatched)
        vec_result.push_back(vec_tmp);
    return(bMatched);
}

BOOL Glob_Fun::ParserMem(
                         const void*                    src_buf,
                         int                            src_len,
                         const char*                    par_buf,
                         vector<string>&                vec_result)
{
    if ((NULL == src_buf) || (src_len <= 0) || strlen(par_buf) <= 0)
        return FALSE;
    vec_result.clear();

    string vec_tmp;
    BOOL bMatched = FALSE;
    char*cp = (char*)src_buf;
    char*src_end = (char*)src_buf +  src_len;
    int  nParLen = strlen(par_buf);
    char*find_buf = (char*)par_buf;
    char*find_end = find_buf + nParLen;
    char*s_src = NULL, *s_find = NULL;

    while (cp < src_end)
    {
        s_src = cp;
        s_find = (char*)find_buf;
        while (s_src < src_end && s_find < find_end && *s_src == *s_find)
            ++s_src, ++s_find;
        if (s_find == find_end)
        {   
            bMatched = TRUE;
            cp += nParLen;
            vec_result.push_back(vec_tmp);
            vec_tmp.clear();        
        }
        else
        {
            vec_tmp.push_back(*cp);
            ++cp;
        }
    }
    if(TRUE == bMatched)
        vec_result.push_back(vec_tmp);
    return(bMatched);
}

posted on 2008-06-23 15:43 肥仔 閱讀(1715) 評論(1)  編輯 收藏 引用 所屬分類: 庫 & 代碼段

評論

# re: 內(nèi)存搜索與解析[未登錄]  回復(fù)  更多評論   

good
2009-04-20 16:38 | a
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            91久久线看在观草草青青| 久久亚洲综合色| 久久综合色播五月| 亚洲香蕉网站| 亚洲亚洲精品三区日韩精品在线视频| 一本色道久久综合狠狠躁篇的优点| 在线高清一区| 亚洲国产成人午夜在线一区| 亚洲国产日韩一区| 夜久久久久久| 欧美成人四级电影| 国户精品久久久久久久久久久不卡 | 国产精品自拍视频| 国产精品欧美激情| 国产精品入口福利| 国产日韩欧美视频| 亚洲成人在线网站| 一本色道久久综合亚洲精品不卡| 亚洲欧美精品在线| 久久久久免费视频| 91久久精品日日躁夜夜躁国产| 亚洲黄一区二区三区| 在线视频一区观看| 美女亚洲精品| 国产精品高潮视频| 一色屋精品视频免费看| 这里只有精品电影| 美女国产一区| 99国产精品久久| 久久日韩粉嫩一区二区三区| 欧美日韩亚洲一区三区| 国产一区二区三区高清在线观看| 亚洲国产经典视频| 亚洲欧美日韩在线观看a三区| 美女国产一区| 香蕉免费一区二区三区在线观看| 欧美成人资源| 国产中文一区| 亚洲一区尤物| 亚洲高清av| 欧美伊人久久| 国产精品尤物| 亚洲一区在线免费| 亚洲国产日韩欧美在线动漫| 久久国产一区| 国产精品久久二区二区| 亚洲精品美女免费| 女生裸体视频一区二区三区| 国产精品久久久久久五月尺 | 日韩特黄影片| 麻豆免费精品视频| 午夜免费久久久久| 国产精品久久国产三级国电话系列 | 亚洲性视频网址| 欧美黄色大片网站| 亚洲老司机av| 欧美mv日韩mv国产网站app| 亚洲欧美一区二区在线观看| 欧美体内she精视频在线观看| 亚洲免费观看高清完整版在线观看熊| 久久综合国产精品| 亚洲摸下面视频| 99精品福利视频| 欧美成人dvd在线视频| 欧美一区二区私人影院日本| 国产乱理伦片在线观看夜一区| 亚洲一区区二区| 亚洲一二三区精品| 欧美日韩午夜精品| 亚洲免费在线看| 亚洲午夜视频在线观看| 国产精品理论片| 久久99伊人| 久久黄色级2电影| 亚洲二区在线视频| 亚洲日本欧美在线| 欧美少妇一区二区| 午夜精品国产更新| 欧美在线视频观看免费网站| 在线不卡视频| 亚洲国产一区二区三区高清 | 免费在线看一区| 亚洲日本欧美日韩高观看| 亚洲精品国产品国语在线app | 久久久久久亚洲综合影院红桃| 伊人久久综合| 亚洲欧洲综合另类| 国产精品日韩在线播放| 久久午夜av| 欧美伦理a级免费电影| 亚洲欧美日本另类| 久久亚洲一区二区三区四区| 一区二区三区.www| 欧美中文字幕精品| 亚洲精选一区二区| 亚洲欧美日韩国产中文| 亚洲电影免费观看高清完整版在线观看 | 欧美午夜电影在线观看| 久久网站免费| 99天天综合性| 欧美亚洲视频在线观看| 亚洲精选视频在线| 欧美一区二视频在线免费观看| 日韩一级免费| 久久久视频精品| 午夜精品福利在线观看| 欧美国产欧美综合| 久久久久久久999精品视频| 欧美激情网站在线观看| 欧美一区二区黄| 欧美国产精品劲爆| 久久久久久午夜| 欧美亚洲不卡| 亚洲电影激情视频网站| 国产日韩精品一区二区浪潮av| 亚洲欧洲另类| 在线播放亚洲| 午夜视频久久久| 裸体歌舞表演一区二区| 久久国产乱子精品免费女| 久久久www免费人成黑人精品| 亚洲最新色图| 蜜臀av在线播放一区二区三区| 久久国产99| 欧美香蕉大胸在线视频观看| 亚洲国产精品电影| **性色生活片久久毛片| 欧美在线视频不卡| 久久爱91午夜羞羞| 国产精品美女诱惑| 亚洲天堂成人在线观看| 亚洲无线一线二线三线区别av| 欧美国产综合视频| 亚洲第一主播视频| 亚洲国产天堂久久国产91| 久久国产精品久久精品国产| 欧美影院在线播放| 国产欧美日韩综合精品二区| 亚洲视频播放| 午夜国产精品影院在线观看| 欧美午夜精品一区| 亚洲视频1区2区| 香蕉免费一区二区三区在线观看| 欧美先锋影音| 亚洲免费视频观看| 欧美一区二区三区在线播放| 国产精品乱码| 亚洲欧美日韩综合aⅴ视频| 欧美一区二区在线播放| 国产区精品在线观看| 欧美一进一出视频| 狂野欧美一区| 亚洲第一福利在线观看| 欧美成人中文字幕在线| 一本大道av伊人久久综合| 亚洲综合第一页| 国产欧美精品一区| 久久久久久自在自线| 亚洲国产天堂久久综合网| 免费日韩av| aa级大片欧美| 久久精品午夜| 91久久在线观看| 欧美视频中文字幕在线| 午夜精品福利视频| 老司机久久99久久精品播放免费| 久久视频免费观看| 日韩视频一区二区三区在线播放免费观看| 欧美经典一区二区| 亚洲午夜精品福利| 久久视频一区| 亚洲深爱激情| 国户精品久久久久久久久久久不卡 | 久久精品人人做人人爽| 亚洲国产日韩在线一区模特| 欧美日韩视频在线| 香蕉久久夜色精品国产| 亚洲国产专区校园欧美| 欧美亚洲免费高清在线观看| 亚洲第一精品影视| 国产精品久久国产精品99gif| 久久精品一区二区三区不卡| 亚洲国产清纯| 老色批av在线精品| 亚洲欧洲av一区二区| 亚洲人成在线播放网站岛国| 欧美系列精品| 欧美国产亚洲精品久久久8v| 午夜精品久久久久久久白皮肤 | 久久久精品tv| 日韩系列在线| 欧美激情视频给我| 久久精品成人一区二区三区| 夜夜嗨av一区二区三区四区| 韩日在线一区| 国产精品久久77777| 欧美日本不卡| 你懂的成人av| 久久一区二区三区超碰国产精品| 中日韩男男gay无套|