Beispiel #1
0
BOOL BIniFile::SaveFile(const char *const fileName) const
{
    BZ_CHECK_C_STRING_RETURN_BOOL(fileName);

    std::ofstream fileOut(fileName);
    if (!fileOut)
    {
        assert(false);
        return FALSE;
    }
    // need add lipengfei 2013/03/21
    int nSegCount = m_segArray.size();
    int nKeyCount = 0;

    for (int i = 0; i != nSegCount; ++i)
    {
        nKeyCount = m_segArray[i].m_keyArray.size();
        fileOut << "[" << m_segArray[i].m_bssSeg.m_cpStr << "]" << std::endl;

        for (int j = 0; j != nKeyCount; ++j)
        {
            fileOut << m_segArray[i].m_keyArray[j].m_bssKey.m_cpStr
                << "=" << m_segArray[i].m_keyArray[j].m_bssValue.m_cpStr
                << std::endl;
        }
    }

    fileOut.close();
    return TRUE;
}
Beispiel #2
0
BOOL BIniFile::LoadFile(const char *const fileName)
{
    BZ_CHECK_C_STRING_RETURN_BOOL(fileName);
    
    std::ifstream fileIn(fileName);
    if (!fileIn)
    {
        assert(false);
        return FALSE;
    }

    char   buffer[LINE_BUFFER_SIZE];
    bool   getSeg  = false;
    size_t nBufLen = 0; 
    int    nAssPos = 0;
    while (!fileIn.eof())
    {
        fileIn.getline(buffer, LINE_BUFFER_SIZE);
        if ((!getSeg) && (!IsSegment(buffer)))
        {
            continue;
        }

        if (IsComment(buffer))
        {
            continue;
        }

        if (IsSegment(buffer))
        {
            BSegmentNode seg;
            getSeg              = true;
            nBufLen             = strlen(buffer);
            buffer[nBufLen - 1] = '\0';
            seg.m_bssSeg = BSimpleString(buffer + 1);

            m_segArray.push_back(seg);
            continue;
        }

        if (-1 != (nAssPos = IsKeyNode(buffer)))
        {
            BKeyNode key;
            buffer[nAssPos] = '\0';
            key.m_bssKey     = BSimpleString(buffer);
            key.m_bssValue   = BSimpleString(buffer + nAssPos + 1);
            m_segArray.back().AddKey(key);
            continue;
        }
    }

    fileIn.close();
    return TRUE;
}
Beispiel #3
0
BOOL BFile::Open(const char* const cpcFile, const char* const cpcMode)
{
    BZ_CHECK_C_STRING_RETURN_BOOL(cpcFile);

    BOOL bRet = FALSE;

    m_hFile = fopen(cpcFile, cpcMode);
    BZ_PROCESS_ERROR(m_hFile);

    if (strchr(cpcMode, 'b'))
        m_bBinaryFile = TRUE;
    else
        m_bBinaryFile = FALSE;

    bRet = TRUE;
Exit0:
    return bRet;
}