/****************************************************************************/
///
/// 機能 : 数字の判断
///
/// 返り値 : RETOK (正常)数字
/// RETNG (異常)数字以外
///
/// 機能説明 : 数字の判断
///
///
/// 備考 :
///
/****************************************************************************/
int IsNum(char *pszStr) {
int inLength = strlen( pszStr );
int inLoopCnt = 0;
int inRtn = 0;
if ( inLength == 0 ) {
inRtn = RETNG;
}
for ( inLoopCnt; inLoopCnt<inLength; inLoopCnt++ ) {
//if ( pszStr[inLoopCnt] == ' ' ) {
//
continue;
//}
if ( pszStr[inLoopCnt] >= '0' && pszStr[inLoopCnt] <= '9' ) {
inRtn = RETOK;
} else {
inRtn = RETNG;
break;
}
}
return inRtn;
}
/****************************************************************************/
///
/// 機能 : 字符集が半角文字の判断
///
/// 返り値 : RETOK (正常)全部が半角文字
/// : RETNG (異常)半角文字以外を含む
///
/// 機能説明 : 字符集が半角文字の判断
///
///
/// 備考 :
///
/****************************************************************************/
int HalfCharCheck(char *pszStr)
{
int inLenStr = strlen(pszStr);
int i = 0;
for(i = 0;i<inLenStr;++i){
if( IsZenkaku((unsigned char)pszStr[i]) ) {
//printf("××× 全角 ××× 位置=[%d]/n",i);
++i;
//
全角なので読む位置を進める
return RETNG;
}
else{
//printf("○○○ 半角 ○○○ 位置=[%d]/n",i);
}
}
return RETOK;
}
/****************************************************************************/
///
/// 機能 : 字符集が全角文字の判断
///
/// 返り値 : RETOK (正常)全部が全角文字
/// : RETNG (異常)全角文字以外を含む
///
/// 機能説明 : 字符集が全角文字の判断
///
///
/// 備考 :
///
/****************************************************************************/
int FullCharCheck(char *pszStr)
{
int inLenStr = strlen(pszStr);
int i = 0;
for(i = 0;i<inLenStr;++i){
if( IsZenkaku((unsigned char)pszStr[i]) ) {
//printf("○○○ 全角 ○○○ 位置=[%d]/n",i);
++i;
//
全角なので読む位置を進める
}
else{
//printf("XXX 半角 XXX 位置=[%d]/n",i);
return RETNG;
}
}
return RETOK;
}
/****************************************************************************/
///
/// 機能 : 字符のコードを返す
///
/// 返り値 : RETOK (正常)字符のコード
/// : RETNG (異常)字符のコード以外を含む
///
/// 機能説明 : 字符集が全角のコードを返す
///
///
/// 備考 :
///
/****************************************************************************/
int IsZenkaku(unsigned char c)
{
return (((c >= 0x81) && (c <= 0x9f)) || ((c >= 0xe0) && (c <= 0xfc)));
}
//****************************************************************************/
///
/// 機能 : 文字列の空白を削除する
///
/// 返り値 : 削除した文字列を返す
///
/// 機能説明 : 文字列の空白を削除する
///
///
/// 備考 :
///
//****************************************************************************/
char * Trim(char * str)
{
char *pStr; /* 臨時変数 */
char *ret; /* 処理後文字列 */
char str2[5000];
pStr = str;
memset(str2,'/0',sizeof(str2));
ret="";
if( str==NULL || strlen(str)== 0 ){
return ret;
}
SubStr(pStr,1,3,str2);
while( *pStr == ' ' || *pStr == '/t' || *pStr == '/r' || *pStr == '/n' || strcmp(str2," ")==0 )
{
if(strcmp(str2," ")==0)
{
pStr=pStr+2;
}
pStr=pStr+1;
SubStr(pStr,1,3,str2);
}
ret = pStr;
/* 文字列右側セット */
while( *pStr != 0 )
pStr ++;
pStr --;
/* 文字列右側trim処理 */
while( *pStr == ' ' || *pStr == '/t' || *pStr == '/r' || *pStr == '/n' || strcmp(pStr-2," ")==0)
{
if(strcmp(pStr-2," ")==0)
{
pStr=pStr-2;
}
pStr=pStr-1;
*(pStr + 1) = 0;
}
*(pStr + 1) = 0;
return ret;
}
//****************************************************************************/
///
/// 機能 : 指定の文字列を取得する
///
/// 返り値 : 取得した文字列を返す
///
/// 機能説明 : 指定の文字列を取得する
///
///
/// 備考 :
///
//****************************************************************************/
char* SubStr(char *str, unsigned start, unsigned end, char *retStr)
{
unsigned n;
int iStart =start-1;
int iEnd =end-1;
memset(retStr, '/0', sizeof(retStr));
strcpy(retStr, str);
if (str == NULL)
{
return "";
}
if (strlen(str) < end)
{
end = strlen(retStr);
}
if (iStart > iEnd)
{
return "";
}
n = iEnd - iStart +1;
strncpy(retStr, retStr + iStart, n);
if (n!=0)
{
retStr[n] = 0;
}
return retStr;
}
/****************************************************************************/
///
/// 機能 : 特定文字に転換処理
///
/// 返り値 : RETOK (正常)
/// : RETNG (異常)
///
/// 機能説明 : 特定文字に転換処理
///
///
/// 備考 :
///
/****************************************************************************/
int ReplaceStr(char *sSrc, char *sMatchStr, char *sReplaceStr)
{
int inStringLen;
char szNewString[SP1D0100_C_LARGE_BUFSIZE_FILE];
//char *szNewString;
char *pzFindPos;
//連続の?,,?がみつかりません
if ( (pzFindPos = strstr(sSrc, sMatchStr)) == NULL ){
return RETOK;
}
//szNewString = (char*)malloc(strlen(sSrc));
//memset(szNewString,0x00,strlen(sSrc));
memset(szNewString,0x00,sizeof(szNewString));
if( (!pzFindPos) || (!sMatchStr) ){
return RETNG;
}
while( pzFindPos )
{
memset(szNewString, 0, sizeof(szNewString));
inStringLen = pzFindPos - sSrc;
strncpy(szNewString, sSrc, inStringLen);
strcat(szNewString, sReplaceStr);
strcat(szNewString, pzFindPos + strlen(sMatchStr));
strcpy(sSrc, szNewString);
pzFindPos = strstr(sSrc, sMatchStr);
}
return RETOK;
}