//	M063 : Search files under specified folder
option unsigned;

define	count = 0;

//------------------------------------------------------------------------------//
//	Search files under specified folder											//
//																				//
//	߂l	F	Ȃ															//
//------------------------------------------------------------------------------//
function main()
{
	define	port = 3;
	define	i, j, n;
	define	count;
	define	$folder;
	define	$wilds;
	define	$WildArr;
	define	$files;

	_Cls();

	//	Read input file and search character string from profile
	$folder = $_GetProfileStr("folder", "c:\\");
	$wilds	= $_GetProfileStr("wilds" , ";");

	do {
		if (($folder = $_GetFolder("Please select the folder to search", $folder, $folder))							== 0) break;
		if (($wilds  = $_Input("Please enter a wild card to search (multiple times with a semicolon (;))", $wilds)) == 0) break;
		//	Set a wildcard and search for files
		$WildArr[] = $_StrSplit($wilds, ";");					//	Create an array of character strings separated by semicolons (;)
		$_StrTrim($WildArr[]);									//	Remove leading and trailing whitespace from all elements of array
		$files[]   = $_SearchFiles($folder, 1, $WildArr[]);		//	File search
		_Print("\n");											//	Line feed
		//	Search file display
		n = _Elements($files[]);								//	n = number of elements of array
		for (i = 0; i < n; i++) {								//	Display contents of the array (searched files)
			_Pd(i + 1, 5); _Print("  - ", $files[i], "\n");		//	.
		}
	}

	//	Folder name and wildcard record to profile
	if ($folder != "") _SetProfileStr("folder", $folder);
	if ($wilds	!= "") _SetProfileStr("wilds" , $wilds);

}
//------------------------------------------------------------------------------//
//	Folder / path name notification event being searched						//
//------------------------------------------------------------------------------//
function _OnFileSearch($folder)
{
	define rc;

	count++;

	_Print("\r\x1B[2K");
	_Print(count, ": ", $folder);

	return _TRUE;	//	_ TRUE: Continue searching, _ FALSE: Stopping searching
}

