//	M061 : eLXgt@CǂݏoAw肵܂ލs\
option unsigned;

//------------------------------------------------------------------------------//
//	eLXgt@CǂݏoAw肵܂ލs\				//
//																				//
//	߂l	F	ۂɕ񂪌s									//
//------------------------------------------------------------------------------//
function main()
{
	define	s = 0;
	define	finp;
	define	sԍ = 0;
	define	$̓t@C, $, $eLXgs;

	_Cls();
	_Print("eLXgt@C當܂B\n");

	//	vt@CZNVݒ
	_SetProfileSect("M61Sect");

	//	vt@CA̓t@Cƌǂݏo
	$̓t@C = $_GetProfileStr("InpFile", "");
	$   = $_GetProfileStr("InpStr" , "");

	do {
		//	t@C
		$̓t@C = $_GetOpenFile("t@CIĂ",
									  "All(*.*)/*.*/Text(*.txt)/*.txt",
									  "txt",
									  $̓t@C);
		if ($̓t@C == "") break;

		//	
		$ = $_Input("镶͂Ă", $);
		if ($ == "") break;

		if (finp = _FOpen($̓t@C, 'rt')) {
			while ($eLXgs = $_FGetS(finp)) {
				sԍ++;
				if (̌($eLXgs, $)) {
					seLXg̕\(sԍ, $eLXgs, $);
					s++;
				}
			}
			_FClose(finp);
		}
		_Print("s = ", s, "\n");
	}

	//	vt@CցA̓t@CƌL^
	if ($̓t@C != "") _SetProfileStr("InpFile", $̓t@C);
	if ($   != "") _SetProfileStr("InpStr" , $	);
}

//------------------------------------------------------------------------------//
//	seLXgɌ񂪂邩`FbN									//
//																				//
//			F	$Line - seLXg												//
//				$str  - 												//
//																				//
//	߂l	F	_TRUE FseLXgɌ񂪂							//
//				_FALSEFseLXgɌ͖							//
//------------------------------------------------------------------------------//
function ̌($Line, $str)
{
	define	rc = _FALSE;

	if (_StrStr($Line, $str) != -1) rc = _TRUE;

	return rc;
}

//------------------------------------------------------------------------------//
//	seLXg̕\i͐ԐFŕ\j									//
//																				//
//			F	$Line - seLXg												//
//				$str  - 												//
//																				//
//	߂l	F	Ȃ															//
//------------------------------------------------------------------------------//
function seLXg̕\(lno, $Line, $str)
{
	define len = _StrLen($Line);
	define stl = _StrLen($str);
	define ix, ixStr;
	define $part, $left;

	_Pd(lno, 5);
	_Pd(" : ");

	for ($part = $Line;
		 (ixStr = _StrStr($part, $str)) != -1;
		 $part = $_StrPart($part, ix, len - ix)) {

		if (ixStr != 0) $left = $_StrPart($part, 0, ixStr);
		else			$left = "";
		_Print($left, "\x1B[31m", $str, "\x1B[0m");
		ix = ixStr + stl;
	}
	_Print($part);
}
