C++常用函数(续)

来源:互联网 发布:苹果手机修改游戏数据 编辑:程序博客网 时间:2024/06/05 09:09
又写了一些函数,希望大家给指点一下。。。。小弟不胜感激。。。因为我是在利用ACE 在Linux下编写程序,看到ACE_DEBUG(( _ERROR ACE_TEXT( "  delAllBlank execaption\n" ) ));          等是为了调试程序的方便写的。用的时候可以丢掉的。
/*** wallwind 2011/8/31***/
 
///////十六进制转char。。。。inthexToChar(string &value, char *buf, int &bufLen){  //    ACE_DEBUG(( _INFO ACE_TEXT( "value:[%s]\n" ), value.c_str()));    memset(buf, 0x00, bufLen);        if ((unsigned int )bufLen < (value.length()/2))     {        return -1;    }    if (value.length() == 0)    {        return -1;    }    if (value.length() % 2 != 0)    {        return -1;    }    int bufIndex = 0;    for (unsigned int i = 0; i < value.length()/2; i++)    {            string tmp = value.substr(i*2, 2);          ascToHex(tmp.c_str(), &buf[bufIndex], 2);        bufIndex++;    }    bufLen = bufIndex;        //ACE_HEX_DUMP((LM_INFO, (char *)buf, bufLen, "resp message:"));        return 0;}////asc转十六进制intascToHex(const char *Asc, char *Hex, int AscLen){char *HexPtr = Hex;short i;for(i = 0; i < AscLen; i++){*HexPtr = Asc[i] << 4;if (!(Asc[i]>='0' && Asc[i]<='9'))*HexPtr += 0x90;i++;*HexPtr |= (Asc[i] & 0x0F);if (!(Asc[i]>='0' && Asc[i]<='9'))*HexPtr += 0x09;HexPtr++;}return 0;}//十六进制转ascinthexToAsc(const char *Hex, int HexLen, char *Asc){int i;char *AscPtr;const char *HexPtr;char Temp;HexPtr=Hex;AscPtr=Asc;for(i = 0; i < HexLen; i++){Temp = (*HexPtr & 0xf0) >> 4;if (Temp < 10)*AscPtr = 0x30 + Temp; // 数字0-9else*AscPtr = 0x37 + Temp; // 字母A-FAscPtr++;Temp = *HexPtr & 0x0f;if (Temp < 10)*AscPtr = 0x30 + Temp;else*AscPtr = 0x37 + Temp;AscPtr++;HexPtr++;}return 0;}//删除字符串中的空格。voiddelAllBlank(string &line){    if (line.length() <= 0)            {        return;    }    string tmp;    tmp.clear();    try    {       for(unsigned int i = 0; i < line.length(); i++)        {            if (line[i] == ' ' ||  line[i] == '\t'              || line[i] == '\n' || line[i] == '\r')            {                continue;            }            else            {                tmp += line[i];              }        }        line.clear();        line = tmp;    }    catch(...)    {                ACE_DEBUG(( _ERROR ACE_TEXT( "  delAllBlank execaption\n" ) ));              }    return;}///同上。voiddelAllBlank(char *pstr){    if (NULL == pstr)    {        return;    }    int strLen = strlen(pstr);    string tmpStr;    try    {       for(int i = 0; i < strLen; i++)        {            if (pstr[i] == ' ' ||  pstr[i] == '\t'              || pstr[i] == '\n' || pstr[i] == '\r')            {                continue;            }            else            {                tmpStr += pstr[i];              }        }    }    catch(...)    {                ACE_DEBUG(( _ERROR ACE_TEXT( "  delAllBlank execaption\n" ) ));              }    memset(pstr, 0x00, strLen);    memcpy(pstr, tmpStr.c_str(), tmpStr.length());        return;}/////删除最后一个空格voiddelLastBlank(char *pstr){    if (NULL == pstr)    {        return;    }            string tmpStr = pstr;    memset(pstr, 0x00, strlen(pstr));    try    {        for (;;)        {            if (tmpStr.length() > 0)            {                if (tmpStr[tmpStr.length()-1] == ' ' ||  tmpStr[tmpStr.length()-1] == '\t'                  || tmpStr[tmpStr.length()-1] == '\n' || tmpStr[tmpStr.length()-1] == '\r')                {                    tmpStr.erase(tmpStr.length()-1);                }                else                {                    break;                }            }            else            {                break;            }                    }    }        catch(...)    {                ACE_DEBUG(( _ERROR ACE_TEXT( "  delLastBlank execaption\n" ) ));              }    memcpy(pstr, tmpStr.c_str(), tmpStr.length());        return;}voiddelLastBlank(string &tmpStr ){    try    {        for (;;)        {            if (tmpStr.length() > 0)            {                        if (tmpStr[tmpStr.length()-1] == ' ' ||  tmpStr[tmpStr.length()-1] == '\t'                  || tmpStr[tmpStr.length()-1] == '\n' || tmpStr[tmpStr.length()-1] == '\r')                {                    tmpStr.erase(tmpStr.length()-1);                }                else                {                    break;                }            }            else            {                break;            }        }    }        catch(...)    {                ACE_DEBUG(( _ERROR ACE_TEXT( "  delLastBlank execaption\n" ) ));              }        return;}////删除最前边的空格。voiddelHeadBlank(string &tmpStr ){    try    {        for (;;)        {            if (tmpStr.length() > 0)            {                        if (tmpStr[0] == ' ' || tmpStr[0] == '\t'                  || tmpStr[0] == '\n' || tmpStr[0] == '\r')                {                    tmpStr.erase(0);                }                else                {                    break;                }            }            else            {                break;            }        }    }        catch(...)    {                ACE_DEBUG(( _ERROR ACE_TEXT( "  delLastBlank execaption\n" ) ));              }        return;}//加载文件。intloadFile(string fileName, vector<string> &vecLine){    vecLine.clear();    FILE *m_fp = fopen(fileName.c_str(), "rb");    if (NULL == m_fp)    {                ACE_DEBUG(( _ERROR ACE_TEXT( " getline execpaction:[%s]\n" ), fileName.c_str()));                    return -1;    }    char fileLine[MAX_FILE_LINE_LEN];        try    {            for (;;)        {            memset(fileLine, 0x00, MAX_FILE_LINE_LEN);            if (!feof(m_fp))             {                                         if (NULL == fgets(fileLine, MAX_FILE_LINE_LEN, m_fp))                {                    break;                }                vecLine.push_back(fileLine);                               }            else            {                break;            }                }    }    catch(...)    {                fclose(m_fp);        ACE_DEBUG(( _ERROR ACE_TEXT( " getline execpaction:[%s]\n" ), fileName.c_str()));                    return -1;    }    fclose(m_fp);    return 0;}////写到文件void writeToFile(string fileName, char *format, ...){    va_list ap;    char date[10240];    char msgformat[10240];    memset(msgformat, 0x00, 10240);    memset(date, 0x00, 10240);    FILE *logfp = NULL;    logfp = fopen(fileName.c_str(), "a+");    if (NULL == logfp)    {        printf("open log file fail.\n");        return ;    }    if (NULL == format)    {        printf("NULL == format.\n");    }    strcat(msgformat, format);    int msglen = strlen(msgformat);    if ('\n' != msgformat[msglen - 1])    {        strcat(msgformat, "\n");    }    va_start(ap, format);    vfprintf (logfp, msgformat, ap);    va_end(ap);    fflush(logfp);    fclose(logfp);    return;}

原创粉丝点击