プログラミング工房 > HSP > サンプルアプリケーション > downloader > 

gm_rmquote.hsp

/***********************************************************

	文字列の両端の引用符を削除

		【2006/10/20 更新】

***********************************************************/
#ifndef	__GM_RMQUOTE__
	#define	global	__GM_RMQUOTE__


#module

#const	NULL	0

#const	global	TYPE_DQUOTE	1
#const	global	TYPE_SQUOTE	2

/**********************************************************/
// 文字列の両端に同じ種類の引用符が付いていたら、それを削除
/**********************************************************/
#deffunc rmquote var p1, int p2
	// p1 :		処理対象文字列
	// p2 :		削除する引用符の種類。TYPE_DQUOTEかTYPE_SQUOTEを指定する。
	// 戻り値 :	削除された引用符の種類(TYPE_DQUOTEかTYPE_SQUOTE)がstatに代入される。
	//		削除されなければ0が代入される。

	/* 処理対象文字列の長さをチェック */
	len = strlen(p1)
	if len<2 {			// 処理対象文字列が短すぎる
		return NULL
	}

	/* 引用符の種類をセットし、戻り値を準備 */
	if p2=TYPE_SQUOTE {
		quote	= "'"
		result	= TYPE_SQUOTE
	}
	else {
		quote	= "\""
		result	= TYPE_DQUOTE
	}

	/* 指定された引用符があるかチェックし、あったら削除 */
	if instr(p1, 0, quote)!0 {		// 文字列の頭が引用符でない
		return NULL
	}
	if instr(p1, len-1, quote)!0 {	// 文字列の末尾が引用符でない
		return NULL
	}
	p1	= strmid(p1, 1, len-2)

	return	result

/**********************************************************/
#global


#endif