Пример #1
0
int CSample::LoadPattern(const char* strFile)
{

    FILE* fp = fopen(strFile, "r");
    char line[32768];
    char tmp[32768];
    if (fp == NULL)
    {
        fprintf(stderr, "can't open file %s for loading samples\n", strFile);
        exit(1);
    }
    //fprintf(stderr, "Loading samples from file ... \n");
    while(!feof(fp))
    {
        line[0] = 0;
        fgets(line, 32768, fp);
        if (strlen(line) < 2)
        {
            continue;
        }
        CPattern* pPattern = new CPattern();
        chompstr(line);
        memcpy(tmp, line, 32768);
        char tmpbuffer[512];
        char* pbuffer = tmp;
        int iColumn = count_column(line, ',');
        pbuffer = getnextstring(pbuffer, tmpbuffer, ',');
        pPattern->m_original = FindSoS(tmpbuffer);
        for (int k = 0; k < iColumn - 1; k ++)
        {
            pbuffer = getnextstring(pbuffer, tmpbuffer, ',');
            CSetOfSeq* pSS = FindSoS(tmpbuffer);
            
 //           fprintf(stderr, " %s, %d, %d ", tmpbuffer,pSS->m_iShapeID,  pSS->m_iClassID);
            pPattern->m_vShapeClass[pSS->m_iClassID].push_back(pSS);
        }
        m_vPatterns.push_back(pPattern);
    }
    fclose(fp);
    fprintf(stderr, " done! %d patterns loaded\n", (int)m_vPatterns.size());
    m_vActive.clear();
    for (int i = 0; i < (int) m_vPatterns.size(); i ++)
    {
        m_vActive.push_back(1);
    }
    return (int) m_vPatterns.size();

}
Пример #2
0
int CSample::LoadShape(const char* strFile)
{

    FILE* fp = fopen(strFile, "r");
    char line[32768];
    char tmp[32768];
    if (fp == NULL)
    {
        fprintf(stderr, "can't open file %s for loading samples\n", strFile);
        exit(1);
    }
    fprintf(stderr, "Loading shapes from file %s ... \n", strFile);
    while(!feof(fp))
    {
        line[0] = 0;
        fgets(line, 32768, fp);
        if (strlen(line) < 2)
        {
            continue;
        }
        chompstr(line);
        memcpy(tmp, line, 32768);
        char tmpbuffer[512];
        char* pbuffer = tmp;
        pbuffer = getnextstring(pbuffer, tmpbuffer, ',');
        CSetOfSeq* pSS = LoadSoS(tmpbuffer);
        char* str = new char[strlen(tmpbuffer) + 2];
        strcpy(str, tmpbuffer);
        m_vFileNames.push_back(str);
        pbuffer = getnextstring(pbuffer, tmpbuffer, ',');
        pSS->m_iShapeID = atoi(tmpbuffer);
        pbuffer = getnextstring(pbuffer, tmpbuffer, ',');
        pSS->m_iClassID = atoi(tmpbuffer);
        
//        fprintf(stderr, " %s, %d %d\n", str, pSS->m_iShapeID, pSS->m_iClassID);
        m_vSS.push_back(pSS);
    }
    fclose(fp);
    fprintf(stderr, " done! %d shapes loaded\n", int(m_vSS.size()));
    return (int) m_vSS.size();

}
int OSConfigure::countxpath ( std::string path )
{
    int counter = 0;
    openxpath ( path );
    std::string res;
    while ( getnextstring ( res ) )
    {
        counter++;
    }
    return counter;
}