;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	Modules.hsp
;
;		¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤¢¤¤¤Þ¤¤¸¡º÷¡¢ÅÀ¿ôÉÕ¤±¥â¥¸¥å¡¼¥ë
;		¡¦HTML¥½¡¼¥¹¼èÆÀ¥â¥¸¥å¡¼¥ë
;		¡¦²þ¹Ô¥³¡¼¥ÉCRLFÅý°ì¥â¥¸¥å¡¼¥ë
;		¡¦¶Ê¥Õ¥¡¥¤¥ë¤«¤é¾ðÊó¼èÆÀ¥â¥¸¥å¡¼¥ë
;		¡¦²Î»ìURL¤«¤é²Î»ì¤òÃê½Ð¤¹¤ë¥â¥¸¥å¡¼¥ë
;		¡¦LyricsMaster¤Î¥Æ¥­¥¹¥È¤ò¼èÆÀ¡¦ÀßÄꡦ²òÀÏ ¥â¥¸¥å¡¼¥ë
;		¡¦¥¿¥¤¥à¥¿¥°ÉÕ¤­²Î»ìÀ¸À® ¥â¥¸¥å¡¼¥ë
;		¡¦¥Ä¡¼¥ë¥Á¥Ã¥× ¥â¥¸¥å¡¼¥ë
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±


;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	¥Ç¡¼¥¿¥Ù¡¼¥¹¤¢¤¤¤Þ¤¤¸¡º÷¡¢ÅÀ¿ôÉÕ¤±¥â¥¸¥å¡¼¥ë
;
;		lua-xl.hsp »ÈÍÑ
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#module TimetagDataBaseSearch
;*******************************************************************************
;	ÅÀ¿ô¤ò¤Ä¤±¤ëºÝ¤Î³Æ¹àÌܤνŤßÉÕ¤±¤òÀßÄꤹ¤ë
;
;		PointInMusicList_option_set p1, p2, p3, p4
;
;		p1=¿ôÃÍ		: ¥¿¥¤¥È¥ë¤Î½Å¤ß[0¡Á100]
;		p2=¿ôÃÍ		: ¥¢¡¼¥Æ¥£¥¹¥È¤Î½Å¤ß[0¡Á100]
;		p3=¿ôÃÍ		: ¥¢¥ë¥Ð¥à¤Î½Å¤ß[0¡Á100]
;		p4=¿ôÃÍ		: ºÆÀ¸»þ´Ö¤Î½Å¤ß[0¡Á100]
;
;*******************************************************************************
#deffunc PointInMusicList_option_set int p1, int p2, int p3, int p4

	Option_WeightTitle=p1
	Option_WeightArtsit=p2
	Option_WeightAlbum=p3
	Option_WeightTime=p4
return

;*******************************************************************************
;	¶Ê¾ðÊ󤫤é¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ò¤¢¤¤¤Þ¤¤¸¡º÷¡£ ³Î¤«¤é¤·¤µ(¥Ý¥¤¥ó¥È)¤È¥Ç¡¼¥¿¤òÊÖ¤¹¡£
;
;		PointInMusicList( p1, p2)
;
;		p1=ÊÑ¿ô		: ¥Ç¡¼¥¿¥Ù¡¼¥¹À¸¥Ç¡¼¥¿
;		p2=ʸ»úÎó	: "¥¿¥¤¥È¥ë<>¥¢¡¼¥Æ¥£¥¹¥È<>¥¢¥ë¥Ð¥à<>ºÆÀ¸»þ´Ö(ÉÃ)"
;
;		Ìá¤êÃÍ		: "¥Ý¥¤¥ó¥È<>KEY<>¥¿¥¤¥È¥ë<>¥¢¡¼¥Æ¥£¥¹¥È<>²Î»ì¥µ¥¤¥È<>¥¿¥¤¥à¥¿¥°FileName<>wikiURL<>¥¢¥ë¥Ð¥à<>ºÇ½ª¹¹¿·Æü»þ<>ºÆÀ¸»þ´Ö(¥ß¥êÉÃ)<>Åê¹Æ¼Ô<>¥³¥á¥ó¥È"
;
;*******************************************************************************
#defcfunc PointInMusicList var lists, str _tester

// HSP¤Ç¤Ï®ÅÙ¤¬½Ð¤Ê¤«¤Ã¤¿¤Î¤ÇLUA¤ËÅꤲ¤ë¡£¢«¤½¤ì¤Ç¤â¿ô»«¤¯¤Î¤Ï»þ´Ö¤¬¤«¤«¤ë(- -¡¨
_lm_LuaScript = {"
function PointInMusicList(lists,tester,weight)
    --
    test_TAAT=split_as_cgidata(tester)
	test_titles_num, test_titles = arraysplit(test_TAAT[1])
	test_artists_num, test_artists = arraysplit(test_TAAT[2])
	test_albums_num, test_albums = arraysplit(test_TAAT[3])

	test_titles_strlen = string.len(test_TAAT[1])
	test_artists_strlen = string.len(test_TAAT[2])
	test_albums_strlen = string.len(test_TAAT[3])
	
	if test_TAAT[4]=="0" then test_TAAT[4]="" end
	
	local list_point=0
	local max_list_point=0
	local max_list_point_list=""
	
	for list_key, list_title, list_artist, list_lyricsite, list_tagdata, list_wikipage, list_album, list_update, list_time, list_tagging, list_comment in string.gmatch(lists, "(%d-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>.-<><><><>") do
 
		title_point = PointTester( list_title, test_titles, test_titles_num, test_titles_strlen)
		artist_point = PointTester( list_artist, test_artists, test_artists_num, test_artists_strlen)
		album_point = PointTester( list_album, test_albums, test_albums_num, test_albums_strlen)
		time_point = PointTesterTime( list_time, test_TAAT[4])
		
		max_total_point=0
		total_point=0
		--ÅÀ¿ô¤Ë½Å¤ßÉÕ¤±
		if title_point = -1 then
			--¥¿¥¤¥È¥ë
			max_total_point = max_total_point + weight.title
			total_point = total_point + title_point*weight.title/100
		end
		if artist_point = -1 then
			--¥¢¡¼¥Æ¥£¥¹¥È
			max_total_point = max_total_point + weight.artist
			total_point = total_point + artist_point*weight.artist/100
		end
		if album_point = -1 then
			--¥¢¥ë¥Ð¥à
			max_total_point =max_total_point + weight.album
			total_point = total_point + album_point*weight.album/100
		end
		if time_point = -1 then
			--ºÆÀ¸»þ´Ö
			max_total_point = max_total_point + weight.time
			total_point = total_point + time_point*weight.time/100
		end
		--¤¹¤Ù¤Æ¤Î¥È¡¼¥¿¥ëÅÀ¿ô»»½Ð
		list_point = total_point*100/max_total_point
		
		if max_list_point < list_point then
			--ºÇÂçÃͤΤȤ­¤Î¥Ç¡¼¥¿¤òµ­Ï¿¤·¤Æ¤ª¤¯
			max_list_point = list_point
			max_list_point_list = list_key.."<>"..list_title.."<>"..list_artist.."<>"..list_lyricsite.."<>"..list_tagdata.."<>"..list_wikipage.."<>"..list_album.."<>"..list_update.."<>"..list_time.."<>"..list_tagging.."<>"..list_comment
		end
	end
    return "" .. math.floor(max_list_point) .. "<>" .. max_list_point_list
end

function arraysplit(test)
	if test=="" then return 0,"" end
	local count=1
	local index=1
	local tests={}
	local wbyte=0
	repeat
		if (129<=string.byte(test,index) and string.byte(test,index)<=159) or (224<=string.byte(test,index) and string.byte(test,index)<=252) then
			wbyte=1
		else
			wbyte=0
		end
		tests[count] = string.sub(test,index,index+wbyte)
		index = index + 1+wbyte
		count = count + 1
	until index>string.len(test)
	return count-1, tests
end

function PointTester(_plist, ptest, num, strlen_ptest)
	if num==0 or string.len(_plist)==0 then
		return -1
	end
	local plist="#$%".._plist.."=|"
	local pt_maxpoint=0
	local pt_point=0
	local matcher=""
	for i=1, num do
	
		pt_maxpoint = pt_maxpoint + 3
	
		--3point 123
		matcher=""
		if i == 1 then
			matcher= matcher .. "#$%"
		else
			matcher = matcher .. ptest[i-1]
		end
		matcher = matcher .. ptest[i]
		if i == num then
			matcher = matcher .. "=|"
		else
			matcher = matcher .. ptest[i+1]
		end
		--print(matcher)
		if string.find(plist,matcher,1,1) = nil then
			pt_point = pt_point+3
		else 
			--2point 12
			matcher=""
			if i==1 then
				matcher = matcher .. "#$%"
			else
				matcher = matcher .. ptest[i-1]
			end
			matcher = matcher .. ptest[i]
			if string.find(plist,matcher,1,1) = "" then
				pt_point = pt_point+2
			else
				--2point  23
				matcher=""
				matcher = matcher .. ptest[i]
				if i==num then
					matcher = matcher .. "=|"
				else
					matcher = mather .. ptest[i+1]
				end
				if string.find(plist,matcher,1,1) = nil then
					pt_point = pt_point+2
				else
					--1point  2
					matcher=ptest[i]
					if string.find(plist,matcher,1,1) = nil then
						pt_point = pt_point+1
					end
				end
			end		
		end
	end
	local hstrlen_list = string.len(_plist)/2
	local hstrlen_ptest = strlen_ptest/2
	if hstrlen_list >= hstrlen_ptest then
		pt_maxpoint = pt_maxpoint + hstrlen_list
		pt_point    = pt_point + hstrlen_ptest
	else
		pt_maxpoint = pt_maxpoint + hstrlen_ptest
		pt_point    = pt_point + hstrlen_list
	end
	return pt_point*100/pt_maxpoint
end
	
function PointTesterTime( p1, p2 )
	if p1=="" or p2=="" or p2=="0" then
		return -1
	end
	local pt = 100 - ( math.abs( math.floor(p1/1000) - p2/1000 )) --»þ´Ö¤Îº¹¤ò¼è¤Ã¤Æ¥ß¥êÉÃñ°Ì¤ò1ÉÃñ°Ì¤Ë¤·¤Æ¥º¥ì¤Æ¤Ê¤µ¤ò¥Ý¥¤¥ó¥È¤Ë¤¹¤ë
	if pt < 0 then
		pt = 0 --100Éðʾ庹¤¬¤¢¤ë¤È¥Þ¥¤¥Ê¥¹¤Ë¤Ê¤Ã¤Æ¤ë¤«¤é0ÅÀ¤Ë¤¹¤ë
	end
	return pt
end
function split_as_cgidata(line)
    local result= {}
    for e in string.gmatch(line.."<>" , "([^<>]*)<>" ) do
		table.insert(result,e)
    end
    return result
end
"}

	luaL_newstate	// Lua½é´ü²½
	L = stat
	luaL_openlibs L

	//Lua¥¹¥¯¥ê¥×¥ÈÆɤ߹þ¤ß
	luaL_loadstring L, _lm_LuaScript
	//¶õ¼Â¹Ô¤·¤Æ´Ø¿ô¤òǧ¼±¤µ¤»¤ë(?)
	lua_pcall L, 0, 0, 0
	if stat!0 {
		lua_close L	// Lua³«Êü
		dialog "lua_pcall()=="+stat+"\nLua¥¹¥¯¥ê¥×¥È¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿(1)",1,"²Î»ì¸¡º÷"
		return
	}
	//LyricsInfoGet´Ø¿ô¤ò¥¹¥¿¥Ã¥¯¤ËÀѤà
	lua_getfield L, LUA_GLOBALSINDEX, "PointInMusicList"
	//°ú¿ô¤ò¥¹¥¿¥Ã¥¯¤ËÀѤà
	lua_pushstring L, lists
	lua_pushstring L, _tester
	;¥Æ¡¼¥Ö¥ë
	lua_newtable L
	lua_pushstring L, ""+Option_WeightTitle ;value
	lua_setfield L, -2, "title"; ;key
	lua_pushstring L, ""+Option_WeightArtsit ;value
	lua_setfield L, -2, "artist"; ;key
	lua_pushstring L, ""+Option_WeightAlbum ;value
	lua_setfield L, -2, "album"; ;key
	lua_pushstring L, ""+Option_WeightTime ;value
	lua_setfield L, -2, "time"; ;key
	//¥¹¥¿¥Ã¥¯ºÇ²¼Áؤò»ØÄꤷ¤Æ´Ø¿ô¤ò¼Â¹Ô
	lua_pcall L, 3, LUA_MULTRET, 0
	if stat!0 {
		lua_close L	// Lua³«Êü
		dialog "lua_pcall()=="+stat+"\nLua¥¹¥¯¥ê¥×¥È¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿(2)",1,"²Î»ì¸¡º÷"
		return
	}
	
	//¥¹¥¿¥Ã¥¯¤ÎÍ×ÁÇ¿ô(Ìá¤êÃͤοô)¤ò¼èÆÀ
	lua_gettop L

	//Í×ÁǤβó¿ô·«¤êÊÖ¤·¤Æ¥¹¥¿¥Ã¥¯¤òÁ´ÉôÆɤ߼è¤ê½ü¤¯
		//°ú¿ô¤ò¼èÆÀ
		lua_tostring L, -1
		//¥Ý¥¤¥ó¥¿Àè¤Îʸ»úÎó¤òʸ»úÎóÊÑ¿ô¤Çɽ¤»¤ë¤è¤¦¤Ë¤¹¤ë(¥¯¥í¡¼¥óÊÑ¿ô)
		dupptr luarefstr,stat,1,2
		//Í×ÁǤΥ¹¥¿¥Ã¥¯°ÌÃ֤ǼïÎà¤òÆÃÄê
		temporary = luarefstr
		lua_pop L,1
	
	lua_close L	// Lua³«Êü
	
	return temporary

#global


;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	HTML¥½¡¼¥¹¼èÆÀ¥â¥¸¥å¡¼¥ë
;
;		comobj47.hsp (HSP-NEXT ¤µ¤¯¤éÍͺî) ¤ò²þ¤¡¢¥â¥¸¥å¡¼¥ë²½
;		²þ¹Ô¥³¡¼¥ÉÃÖ´¹¥â¥¸¥å¡¼¥ë(toCRLF)»ÈÍÑ
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
;***** URL¤ò»ØÄꤷ¤Æhtml¥Æ¥­¥¹¥È¤ò¼èÆÀ  (comobj47.hsp) *****

	#define adTypeBinary            1
	#define adSaveCreateNotExist    1
	#define adSaveCreateOverWrite   2

#define global Char_Auto -1
#enum global Char_SJIS = 0
#enum global Char_UTF8
#enum global Char_EUC

#module GetHTML
;*******************************************************************************
;	URL¤ò»ØÄꤷ¤Æhtml¥Æ¥­¥¹¥È¤ò¼èÆÀ
;
;		GetHTMLSource( p1 [,p2 [,p3] ] )
;
;		p1=ʸ»úÎó	: URL
;		p2=¿ôÃÍ		: ¼èÆÀÀè¤Îʸ»ú¥³¡¼¥ÉID (-1)
;					    -1 = Char_Auto
;					     0 = Char_SJIS
;					     1 = Char_UTF8
;					     2 = Char_EUC
;		p3=¿ôÃÍ		: toCRLFÌ¿Îá¤Ç²þ¹Ô¥³¡¼¥É¤òCRLF¤ËÅý°ì (0)
;					     1 = ¼Â¹Ô
;
;		Ìá¤êÃÍ		: ¼èÆÀHTML¥½¡¼¥¹
;
;*******************************************************************************
#define global ctype GetHTMLSource(%1,%2=-1,%3=0) _GetHTMLSource(%1,%2,%3)
#defcfunc _GetHTMLSource str _sURL, int CharSetCode, int crlf_flg

	ReturnHTML=""
	;¢§URL¤ò»ØÄê
	sURL = _sURL
	;sURL = "http://www.google.com/search?hl=ja&q=%E6%AD%8C%E8%A9%9E+site:http://zyouge444.blog81.fc2.com/&btnG=%E6%A4%9C%E7%B4%A2&aq=f&aqi=&aql=&oq="
	;¢§¥»¡¼¥Ö¤¹¤ë¾ì¹ç¤ÎHTML̾ (Ǥ°Õ)
	;sDest = dirinfo(0)+"\\dsthtml.htm"
	;¢§CharCode¤ò»ØÄê
	switch CharSetCode
		case Char_SJIS
			charcode = "Shift_JIS"
			swbreak
		case Char_UTF8
			charcode = "UTF-8"
			swbreak
		case Char_EUC
			charcode = "EUC-JP"
			swbreak
		default
			charcode = "Shift_JIS"
	swend

	;title sURL
	newcom objXMLHTTP, "Microsoft.XMLHTTP"
	objXMLHTTP->"Open" "GET", sURL, 0
	objXMLHTTP->"Send"
	;¢§status OK¤Ê¤éHTML¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ò»ØÄê¤ÎCharCode¤Ç¼èÆÀ
	if objXMLHTTP("status") = 200 {
		newcom objRS,"ADODB.Stream"
		if stat!0 : dialog "ADODB.Stream¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£",0 : return ""
		objRS("Type") = 1
		objRS->"Open"
		sHtml=objXMLHTTP("ResponseBody")
		objRS->"Write" sHtml
		objRS("Position") = 0
		objRS("Type") = 2
		objRS("Charset") = charcode
		ReturnHTML=objRS("ReadText")
		if CharSetCode=Char_Auto {
			charset=match(ReturnHTML,"<meta.*charset\\s*=.*?>")
			charset=replace(charset,"^.*charset\\s*=(.*)$","$1")
				
			charcode = "UTF-8"
			charset=getpath(charset,16)
			if instr(charset,0,"utf-8")!-1{
				charcode = "UTF-8"
			}else :if instr(charset,0,"euc")!-1{
				charcode = "EUC-JP"
			}else :if instr(charset,0,"shift_jis")!-1{
				charcode = "Shift_JIS"
			}
			objRS("Position") = 0
			objRS("Type") = 2
			objRS("Charset") = charcode
			ReturnHTML=objRS("ReadText")
		}
		;¥Õ¥¡¥¤¥ë¤È¤·¤ÆÊݸ¤¹¤ë¾ì¹ç
		;objRS->"Savetofile" sDest,adSaveCreateOverWrite
		objRS->"Close"
	}else{
		dialog "Àܳ¤Ë¼ºÇÔÃפ·¤Þ¤·¤¿¡£",0,"¥¨¥é¡¼"
	}

	;objprm objectID,ReturnHTML
	if vartype(objRS)==6 {
		if varuse(objRS)==1 : delcom objRS
	}
	delcom objXMLHTTP
	
	if crlf_flg = 1 : toCRLF ReturnHTML

	return ReturnHTML
#global


;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	²þ¹Ô¥³¡¼¥ÉCRLFÅý°ì¥â¥¸¥å¡¼¥ë
;
;		
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#module "ReturnCode"
;*******************************************************************************
;   ²þ¹Ô¥³¡¼¥É¤òCRLF(0x0D 0x0A)¤ËÃÖ´¹
;
;		toCRLF p1
;
;		p1=ÊÑ¿ô		: ÃÖ´¹¤¹¤ëʸ»úÎó¤ÎÆþ¤Ã¤¿ÊÑ¿ô
;
;*******************************************************************************
#deffunc toCRLF var sp1
	;²þ¹Ô¥³¡¼¥ÉLF(0x0A = \n)¤òºî¤ë
	lf="@" :poke lf,0,$A
	;²þ¹Ô¥³¡¼¥ÉCR(0x0D = \r)¤òºî¤ë
	cr="@" :poke cr,0,$D

	repeat 3
		switch cnt
			case 0 :a="\n"	:b=lf	:swbreak	;CR+LF	¢ª	LF		[HSP¤Î\n = \r\n]
			case 1 :a=cr	:b=lf	:swbreak	;CR		¢ª	LF
			case 2 :a=lf	:b="\n"	:swbreak	;LF		¢ª	CR+LF
		swend
		i=0
		repeat
			c=instr(sp1,i,a)				;ÃÖ´¹¤¨Ê¸»ú¸¡º÷
			if c=-1 :c=cnt :break			;¸¡º÷¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿¤é½ªÎ»¡¢¸¡º÷¸Ä¿ô¤òµ­²±
			i+=c+strlen(a)
			index(cnt+1)=i					;¸¡º÷¤µ¤ì¤¿Ê¸»ú¤Î¸å¤í¤Îindex¤òµ­Ï¿
		loop
		index(c+1)=strlen(sp1)+strlen(a)	;ʸ»úÎó¤ÎºÇ½ªindex+ÃÖ´¹¤¨Ê¸»ú¥µ¥¤¥º¤òÆþ¤ì¤ë
		sdim temp,strlen(sp1) +(strlen(b)-strlen(a))*c +1	;ÍÆÎ̤ò³ÎÊÝ(Áýʬ¹Íθ)
		repeat
			temp+=strmid(sp1,index(cnt),index(cnt+1)-index(cnt)-strlen(a))	;Á°¤Î¸¡º÷°ÌÃÖ¤«¤é¼¡¤Î¸¡º÷°ÌÃ֤ޤǤòÀÚ¤ê¼è¤Ã¤Ætemp¤Ë¤Ä¤Ê¤²¤ë
			if cnt=c :break
			temp+=b						;ÃÖ¤­´¹¤¨¤ëʸ»ú¤òÃÖ¤¯
		loop
		sp1=temp
	loop
	return c
#global


;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	¶Ê¥Õ¥¡¥¤¥ë¤«¤é¾ðÊó¼èÆÀ¥â¥¸¥å¡¼¥ë
;
;		mp3infp_ExportFunc_HSP.hsp »ÈÍÑ
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#module GetMusicData
#define global title_artist_get(%1="",%2=dummy,%3=dummy,%4=dummy,%5=dummy) _title_artist_get %1,%2,%3,%4,%5
;*******************************************************************************
;	¥Õ¥¡¥¤¥ë¤«¤é¥¿¥°¾ðÊó¤ò¼èÆÀ
;
;		GetMusicInfo p1, p2, p3, p4, p5
;
;		p1=ʸ»úÎó	: ²»³Ú¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ñ¥¹
;		p2=ÊÑ¿ô		: ¥¿¥¤¥È¥ë¤¬Æþ¤ë
;		p3=ÊÑ¿ô		: ¥¢¡¼¥Æ¥£¥¹¥È¤¬Æþ¤ë
;		p4=ÊÑ¿ô		: ¥¢¥ë¥Ð¥à¤¬Æþ¤ë
;		p5=ÊÑ¿ô		: ºÆÀ¸»þ´Ö¤¬Æþ¤ë
;
;*******************************************************************************
#deffunc GetMusicInfo str f_name, var lm_title, var lm_artist, var lm_album, var lm_time
	lm_title=""
	lm_artist=""
	lm_album=""
	lm_time=""
	;mp3infp
	title_artist_get f_name,lm_title,lm_artist,lm_album
		
	if lm_title="" :lm_title=getpath(f_name,1+8)
	
	f_name_=f_name
	lm_time=""
	mp3infp_Load hwnd, varptr(f_name_)
	if stat!-1 {
		mtime="TIME"
		mp3infp_GetValue varptr(mtime),varptr(prmm)
		prm_str=""
		dupptr prm_str,prmm,32,2			;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ
		lm_time=prm_str
		if instr(lm_time,0," (")!-1 {
			lm_time = strmid( lm_time,0,instr(lm_time,0," (") )
		}
	}
	if lm_time="" {
		mci "open \""+f_name+"\" alias flv type mpegvideo"
		mci "set flv time format milliseconds"
		mci "status flv length": sl=stat
		mci "close all"
		slm=sl/60/1000
		sls=sl/1000-slm*60
		lm_time = strf("%d:%02d",slm,sls)
	}
	return

#deffunc sampling_get_wma str prm0 ,var prm1
	prm0_=prm0
	mp3infp_Load hwnd,varptr(prm0_)			;¶Ê¤òÆɤ߹þ¤à
	if stat=-1 :return 0
	afmt="AFMT"
	dim prmm
	mp3infp_GetValue varptr(afmt),varptr(prmm)	;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ
	if stat=0 :return 0
	prm_str=""
	dupptr prm_str,prmm,32,2			;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ
	prm3=prm_str
	c=instr(prm3,0,"Hz")			;Hz¤Þ¤Ç¸«¤Ä¤±¡¢¤½¤³¤«¤éµÕ¸¡º÷¤·¿ôÃͤòÆÀ¤ë
	k=0 :suti=0
	repeat c,1
		code=peek(prm3,c-cnt)
		if code=107 :k=1					;k(¥­¥í)¤ò¸«¤Ä¤±¤¿¤é³Ð¤¨¤Æ¤ª¤¯
		if code>=48 & code<=57 :suti=1		;¿ôÃͥե饰
		if code=32 & suti=1 :cn=cnt :break	;¿ôÃͤò´û¤Ë¸«¤Ä¤±¤¿¸å¤Î¶õÇò¤Ç¸¡º÷¤ò¤ä¤á¤ë
	loop
	prm3=strmid(prm3,c-cn+1,cn-1)			;¥µ¥ó¥×¥ê¥ó¥°¥ì¡¼¥È(ʸ»úÎó)¤ò¼èÆÀ
	prm4=""
	repeat strlen(prm3)
		if peek(prm3,cnt)>=48 & peek(prm3,cnt)<=57 :prm4+=strmid(prm3,cnt,1)	;¿ôÃͤÀ¤±¤Ëľ¤¹
		if peek(prm3,cnt)=46 :dot=cnt
	loop
	dosu=0+(dot=1)*(strlen(prm4)-dot)
	prm1=int(prm4)*(1+(k=1)*999)/(1+(dosu=1)*9)/(1+(dosu=2)*99)/(1+(dosu=3)*999)
	return 1

#defcfunc syuseti int rate
	if rate > 46050 {
		return 9.6;
	}else {
		if rate > 38050 {
			return 9.702;
		}else {
			if rate > 28000 {
				return 9.92;
			}else {
				if rate > 23025 {
					return 9.84;
				}else {
					if rate > 19025 {
						return 9.9225;
					}else {
						if rate > 14000 {
							return 9.92;
						}else {
							if rate > 11512 {
								return 9.96;
							}else {
								if rate > 9512 {
									return 9.9225;
								}else {
									return 10.0;
								}
							}
						}
					}
				}
			}
		}
	}

;
#deffunc _title_artist_get str prm0 ,var prm1 ,var prm2 ,var prm3_, var prm4_
	prm0_=prm0
	mp3infp_Load hwnd,varptr(prm0_)			;¶Ê¤òÆɤ߹þ¤à
	if stat=-1 :return 0
	sdim type,4,4
	type(0)=""
	type(1)="_v1"
	type(2)="_v2"
	type(3)="_rmp"
	mp3infp_GetType
	if stat=1 {				;MP3 ¤Î¾ì¹ç
		mp3infp_mp3_GetTagType
		st=stat
		repeat 1
			if st&2 :st=2 :break	;ID3v2
			if st&4 :st=3 :break	;RiffSIF
			if st&1 :st=1 :break	;ID3v1
			st=-1 :break		;¥¿¥°Íѥǡ¼¥¿Îΰè¤ò»ý¤¿¤Ê¤¤MP3
		loop
	}else :st=0
	if st=-1 :return 0
	afmt="INAM"+type(st);¥¿¥¤¥È¥ë
	dim prmm
	mp3infp_GetValue varptr(afmt),varptr(prmm)	;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ
	if stat=0 :return 0
	prm_str=""
	dupptr prm_str,prmm,32,2			;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ
	prm1=prm_str
	afmt="IART"+type(st);¥¢¡¼¥Æ¥£¥¹¥È
	dim prmm
	mp3infp_GetValue varptr(afmt),varptr(prmm)	;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ
	if stat=0 :return 1
	prm_str=""
	dupptr prm_str,prmm,32,2			;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ
	prm2=prm_str
	afmt="IPRD"+type(st);¥¢¥ë¥Ð¥à
	dim prmm
	mp3infp_GetValue varptr(afmt),varptr(prmm)	;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ
	if stat=0 :return 1
	prm_str=""
	dupptr prm_str,prmm,32,2			;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ
	prm3_=prm_str
	afmt="TRACK"+type(st);¥È¥é¥Ã¥¯
	dim prmm
	mp3infp_GetValue varptr(afmt),varptr(prmm)	;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ
	if stat=0 :return 1
	prm_str=""
	dupptr prm_str,prmm,32,2			;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ
	prm4_=prm_str

	return 3

#global


;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	²Î»ìURL¤«¤é²Î»ì¤òÃê½Ð¤¹¤ë¥â¥¸¥å¡¼¥ë
;
;		lua-xl.hsp »ÈÍÑ
;		HTML¥½¡¼¥¹¼èÆÀ¥â¥¸¥å¡¼¥ë(GetHTMLSource) »ÈÍÑ
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#module 
;*******************************************************************************
;	LUA¤òÍøÍѤ·¤Æ¡¢URL»ØÄê¤Ç²Î»ì¥µ¥¤¥È¤«¤é²Î»ì¤ò¼èÆÀ¡¦Ãê½Ð
;
;		GetLyrics( p1, p2 )
;
;		p1=ʸ»úÎó	: URL
;		p2=ʸ»úÎó	: ²Î»ì¥µ¥¤¥È¤ÎHTML¤«¤é²Î»ì¤òÃê½Ð¤¹¤ëLUA¥¹¥¯¥ê¥×¥È
;					     ¾ÜºÙ¤Ïhttp://w10.oroti.net/timetag/pukiwiki/index.php?LyricsGetScript¤¢¤¿¤ê¤ò»²¾È
;
;		Ìá¤êÃÍ		: ²Î»ì
;
;*******************************************************************************
#defcfunc GetLyrics str lyricsURL, str _LuaScript
	LuaScript=_LuaScript

	//¥ê¥ó¥¯URL¤«¤é¥ê¥ó¥¯Àè¤ÎHTML¥½¡¼¥¹¤ò¼èÆÀ ¢ª Lua¥¹¥¯¥ê¥×¥È¤ËHTML¤ò¤½¤Î¤Þ¤ÞÅꤲ¤ë
	LuaSendRawDate= GetHTMLSource( lyricsURL )
	
	luaL_newstate	// Lua½é´ü²½
	L = stat
	luaL_openlibs L

	luaL_loadstring L, LuaScript
	//¶õ¼Â¹Ô¤·¤Æ´Ø¿ô¤òǧ¼±¤µ¤»¤ë(?)
	lua_pcall L, 0, 0, 0
	if stat!0 {
		lua_close L	// Lua³«Êü
		dialog "lua_pcall()=="+stat+"\nLua¥¹¥¯¥ê¥×¥È¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿(1)",1,""
		return
	}
	//LyricsInfoGet´Ø¿ô¤ò¥¹¥¿¥Ã¥¯¤ËÀѤà
	lua_getfield L, LUA_GLOBALSINDEX, "LyricsInfoGet"
	//°ú¿ô¤ò¥¹¥¿¥Ã¥¯¤ËÀѤà
	lua_pushstring L, LuaSendRawDate
	//¥¹¥¿¥Ã¥¯ºÇ²¼Áؤò»ØÄꤷ¤Æ´Ø¿ô¤ò¼Â¹Ô
	lua_pcall L, 1, LUA_MULTRET, 0
	if stat!0 {
		lua_close L	// Lua³«Êü
		dialog "lua_pcall()=="+stat+"\nLua¥¹¥¯¥ê¥×¥È¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿(2)",1,""
		return
	}
	
	lyrics=""
	//¥¹¥¿¥Ã¥¯¤ÎÍ×ÁÇ¿ô(Ìá¤êÃͤοô)¤ò¼èÆÀ
	lua_gettop L

	//Í×ÁǤβó¿ô·«¤êÊÖ¤·¤Æ¥¹¥¿¥Ã¥¯¤òÁ´ÉôÆɤ߼è¤ê½ü¤¯
	repeat stat
		//°ú¿ô¤ò¼èÆÀ
		lua_tostring L, -1
		//¥Ý¥¤¥ó¥¿Àè¤Îʸ»úÎó¤òʸ»úÎóÊÑ¿ô¤Çɽ¤»¤ë¤è¤¦¤Ë¤¹¤ë(¥¯¥í¡¼¥óÊÑ¿ô)
		dupptr luarefstr,stat,1,2
		;¥Ç¡¼¥¿¥¿¥¤¥×
		getstr infotype, luarefstr, 0,'='
		;¥Ç¡¼¥¿ÆâÍÆ
		infodata = strmid(luarefstr,strsize,strlen(luarefstr))
		
		switch infotype
			case "LYRICS"
				lyrics = infodata
				swbreak
			case "TITLE"
				swbreak
			case "ARTIST"
				swbreak
		swend
		lua_pop L,1
	loop
	lua_close L	// Lua³«Êü
	
	return lyrics
#global


;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	LyricsMaster¤Î¥Æ¥­¥¹¥È¤ò¼èÆÀ¡¦ÀßÄꡦ²òÀÏ ¥â¥¸¥å¡¼¥ë
;
;		Lyrics Master @ http://www.kenichimaehashi.com/lyricsmaster/
;		RhythmicaLyrics¤«¤é»ý¤Ã¤Æ¤­¤Æ¤½¤Î¤Þ¤Þ
;		user32.as »ÈÍÑ
;		mod_regexp.as »ÈÍÑ
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#module lyricsmastertxt
;*******************************************************************************
;	LyricsMaster¤Î¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥È¤ÎÃæ¿È¤ò¼èÆÀ
;
;		GetEdit_LyricsMster( p1 )
;
;		p1=¿ôÃÍ		: LyricsMaster¤Î¥¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë
;
;		Ìá¤êÃÍ		: LyricsMaster¤Î¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥È¤ÎÃæ¿È
;
;*******************************************************************************
#defcfunc GetEdit_LyricsMster int lm_hwnd
	sdim editbox, 64*1024
	RE20Wclass="RICHEDIT50W"
	FindWindowEx lm_hwnd,0,varptr(RE20Wclass),0
	RICHEDIT_hWnd = stat
	if RICHEDIT_hWnd=0 {
		RE20Wclass="RichEdit20W"
		FindWindowEx lm_hwnd,0,varptr(RE20Wclass),0
		RICHEDIT_hWnd=stat
	}
	if RICHEDIT_hWnd!0 {
		sendmsg RICHEDIT_hWnd,WM_GETTEXT,64*1024,varptr(editbox)
	}
	return editbox
	
;*******************************************************************************
;	LyricsMaster¤Î¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥È¤ÎÃæ¿È¤òÀßÄê
;
;		GetEdit_LyricsMster p1, p2
;
;		p1=¿ôÃÍ		: LyricsMaster¤Î¥¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë
;		p2=ʸ»úÎó	: LyricsMaster¤Î¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥È¤Ë½ñ¤­¹þ¤ß¤¿¤¤Ê¸»úÎó
;
;*******************************************************************************
#deffunc SetEdit_LyricsMster int lm_hwnd, str edittext
	editbox = edittext
	RE20Wclass="RICHEDIT50W"
	FindWindowEx lm_hwnd,0,varptr(RE20Wclass),0
	RICHEDIT_hWnd = stat
	if RICHEDIT_hWnd=0 {
		RE20Wclass="RichEdit20W"
		FindWindowEx lm_hwnd,0,varptr(RE20Wclass),0
		RICHEDIT_hWnd=stat
	}
	if RICHEDIT_hWnd!0 {
		sendmsg RICHEDIT_hWnd,WM_SETTEXT,,varptr(editbox)
	}
	return
	
;*******************************************************************************
;	LyricsMaster¤ÎRichEdit¤«¤é¸¡º÷¤·¤¿²Î»ì¥µ¥¤¥È̾(¡Ü²Î»ì¥µ¥¤¥È¤«¤é¥¿¥¤¥È¥ë¡¢¥¢¡¼¥Æ¥£¥¹¥È̾)¤ò¼èÆÀ
;
;		LMstringDivide 
;
;		p1=¿ôÃÍ		: 
;
;*******************************************************************************
#deffunc LMstringDivide var vp1, str sp2, var vp3, var vp4, var vp5, int ip6
	i=0
	getstr temp,vp1,i :i+=strsize	;1¹ÔÌÜ
	vp3=temp				;¥¿¥¤¥È¥ë
	getstr temp,vp1,i :i+=strsize	;2¹ÔÌÜ
	getstr temp,vp1,i :i+=strsize	;3¹ÔÌÜ
;// ȽÃdz«»Ï
	a=strmid(temp,0,4)		;ºÇ½é¤Î4¥Ð¥¤¥È¤ò¼èÆÀ
	if a="Arti" {	;SING365.COM¡¡/¡¡Absolute Lyrics¡¡/¡¡Lyrics Search Engine
		getstr a,temp,0,':'			;Ƭ¤«¤é':'¤Þ¤Ç¤ò¼èÆÀ
		if a="Artist" {
			vp4=strmid(temp,8,1024)		;¥¢¡¼¥Æ¥£¥¹¥È
			getstr temp,vp1,i :i+=strsize	;4¹ÔÌÜ
			if strmid(temp,0,6)="Album:" {
				vp5="Lyrics Search Engine"
				getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
				vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
				return 1
			}else :if temp="" {
				vp5="SING365.COM"
				if ip6=2 && sp2="absolutelyrics" :vp5="Absolute Lyrics"
				if ip6=2 && sp2="metrolyrics" :vp5="MetroLyrics"
				vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
				return 1
			}
		}
	}else :if a="¥¢¡¼" {	;²Î»ìGET!!¡¡/¡¡¥¢¥Ë¥«¥·
		vp4=strmid(temp,14,1024)	;¥¢¡¼¥Æ¥£¥¹¥È
		getstr temp,vp1,i :i+=strsize	;4¹ÔÌÜ
		if strmid(temp,0,4)="ºî»ì" {
			vp5="²Î»ìGET!!"
			getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
			getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			return 1
		}else :if strmid(temp,0,4)="ÈÖÁÈ" {
			vp5="¥¢¥Ë¥«¥·"
			getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
			getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
			getstr temp,vp1,i :i+=strsize	;7¹ÔÌÜ
			getstr temp,vp1,i :i+=strsize	;8¹ÔÌÜ
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			return 1
		}
	}else :if a="¥¿¥¤" {	;²Î»ìGET!!
		vp5="²Î»ìGET!!"
		getstr temp,vp1,i :i+=strsize	;4¹ÔÌÜ
		vp4=strmid(temp,14,1024)	;¥¢¡¼¥Æ¥£¥¹¥È
		getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
		getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
		getstr temp,vp1,i :i+=strsize	;7¹ÔÌÜ
		vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
		return 1
		
	}else :if a="ºî»ì" {
		getstr temp,vp1,i :i+=strsize	;4¹ÔÌÜ
		if strmid(temp,0,4)!"ºî¶Ê" :return 0
		getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
		
		if strmid(temp,0,4)="ÊÔ¶Ê" {	;¥¢¥Ë¥á¥½¥ó¥°¤Î²Î»ì¤Ê¤é¤³¤³¤Ë¤ª¤Þ¤«¤»¡©
			getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
			if strmid(temp,0,4)!"²Î¡¡" :return 0
			vp4=strmid(temp,4,1024)	;¥¢¡¼¥Æ¥£¥¹¥È
			vp5="¥¢¥Ë¥á¥½¥ó¥°¤Î²Î»ì¤Ê¤é¤³¤³¤Ë¤ª¤Þ¤«¤»¡©"
			getstr temp,vp1,i :i+=strsize	;7¹ÔÌÜ
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			return 1
		}else :if strmid(temp,0,4)="¥¢¡¼" {	;UtaTen
			vp4=strmid(temp,14,1024)	;¥¢¡¼¥Æ¥£¥¹¥È
			vp5="UtaTen"
			getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
			getstr temp,vp1,i :i+=strsize	;7¹ÔÌÜ
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			return 1
		}else :if strmid(temp,0,4)="±´¡¡" {
			vp4=strmid(temp,4,1024)	;¥¢¡¼¥Æ¥£¥¹¥È
			getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			if sp2="yahoo" {
				vp5="Yahoo!¥ß¥å¡¼¥¸¥Ã¥¯"
				return 1
			}else :if sp2="kashinavi" {
				vp5="²Î»ì¥Ê¥Ó"
				return 1
			}
		}else :if strmid(temp,0,4)="²Î¡¡" {	;USENÁí¹ç¥Á¥ã¡¼¥È
			vp4=strmid(temp,4,1024)	;¥¢¡¼¥Æ¥£¥¹¥È
			vp5="USENÁí¹ç¥Á¥ã¡¼¥È"
			getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			return 1
		}
	}else :if a="²Î¼ê" {	;²Î¥Í¥Ã¥È¡¡/¡¡²Î»ì¥¿¥¤¥à
		vp4=strmid(temp,6,1024)		;¥¢¡¼¥Æ¥£¥¹¥È
		getstr temp,vp1,i :i+=strsize	;4¹ÔÌÜ
		getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
		getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
		if strmid(temp,0,4)="ÊÔ¶Ê" {
			vp5="²Î»ì¥¿¥¤¥à"
			getstr temp,vp1,i :i+=strsize	;7¹ÔÌÜ
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			return 1
		}else :if temp="" {
			vp5="²Î¥Í¥Ã¥È"
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			return 1
		}
	}else :if a="±´¡¡" {	;¤¦¤¿¤Þ¤Ã¤×¡¡¤«¡¡Yahoo!¥ß¥å¡¼¥¸¥Ã¥¯
		vp4=strmid(temp,4,1024)		;¥¢¡¼¥Æ¥£¥¹¥È
		getstr temp,vp1,i :i+=strsize	;4¹ÔÌÜ
		getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
		getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
		vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
		if ip6=2 {					;¥Ð¡¼¥¸¥ç¥ó£²¤Ïɬ¤º
			vp5="¤¦¤¿¤Þ¤Ã¤×"
			return 1
		}else {						;¥Ð¡¼¥¸¥ç¥ó£±
			vp5="¤¦¤¿¤Þ¤Ã¤×"	;£±¤Ç¤Ï¤È¤ê¤¢¤¨¤º¤¦¤¿¤Þ¤Ã¤×
			if sp2="yahoo" :vp5="Yahoo!¥ß¥å¡¼¥¸¥Ã¥¯"
			return 1
		}
		return 0
	}else :if a="²Î¡¡" {	;¥¤¥Ù¥¹¥¿²Î»ì¤È¤ë¡¡/¡¡Listen Japan¡¡/¡¡¥«¥é¥ª¥±Íѡֲλì¡×¤Î¥Ú¡¼¥¸
		vp4=strmid(temp,4,1024)		;¥¢¡¼¥Æ¥£¥¹¥È
		getstr temp,vp1,i :i+=strsize	;4¹ÔÌÜ
		if strmid(temp,0,4)="ºî»ì" {		;¥¤¥Ù¥¹¥¿²Î»ì¤È¤ë
			if sp2="evesta" {
				vp5="¥¤¥Ù¥¹¥¿"
				getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
				getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
				vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
				return 1
			}else :if sp2="listenjapan" {
				vp5="Listen Japan"
				getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
				getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
				vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
				return 1
			}
		}else :if strmid(temp,0,4)="»ì¡¡" {
			vp5="J-Total Music"
			getstr temp,vp1,i :i+=strsize	;5¹ÔÌÜ
			getstr temp,vp1,i :i+=strsize	;6¹ÔÌÜ
			getstr temp,vp1,i :i+=strsize	;7¹ÔÌÜ
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			return 1
		}else :if strmid(temp,0,4)="" {	;¥«¥é¥ª¥±Íѡֲλì¡×¤Î¥Ú¡¼¥¸
			vp5="¥«¥é¥ª¥±Íѡֲλì¡×¤Î¥Ú¡¼¥¸"
			vp1=strmid(vp1,i,strlen.vp1)	;²Î»ì¤Î¤ß²½
			return 1
		}
	}
	return 0

;*******************************************************************************
;	LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ëÆâÍƤò¼èÆÀ
;
;		LoadLMpreferences p1
;
;		p1=¿ôÃÍ		: ¥ª¥×¥·¥ç¥ó
;						p1 = 1 ¡§ Ϣ³¼èÆÀ¤ËºÇŬ²½¤¹¤ë
;
;		Ìá¤êÃÍ		: LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ëÆâÍÆ
;
;*******************************************************************************
#defcfunc LoadLMpreferences int opt
	//LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É
	preferences_lyricsmaster = ""
	exist dirinfo($1001A)+"\\preferences.lyricsmaster"
	if strsize = -1 :return ""
	notesel preferences_lyricsmaster
	noteload dirinfo($1001A)+"\\preferences.lyricsmaster"
	noteunsel
	preferences_lyricsmaster_b = preferences_lyricsmaster
	if opt=1 {
		;Ϣ³¼èÆÀ¤ËºÇŬ²½¤¹¤ë¤è¤¦¤ËÀßÄêÊѹ¹
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_autoDetect\tFalse", "search_autoDetect\tTrue")
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_autoSelectMaxRank\tFalse", "search_autoSelectMaxRank\tTrue")
		
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useUtamap\tTrue", "search_useUtamap\tFalse")
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useKashiGet\tTrue", "search_useKashiGet\tFalse")
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useUtanet\tTrue", "search_useUtanet\tFalse")
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useLyricsSearchEngine\tTrue", "search_useLyricsSearchEngine\tFalse")
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useSing365com\tTrue", "search_useSing365com\tFalse")
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useAslse\tTrue", "search_useAslse\tFalse")
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useExtraEngine\tTrue", "search_useExtraEngine\tFalse")
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useJoysound\tTrue", "search_useJoysound\tFalse")
	}
	return preferences_lyricsmaster

;*******************************************************************************
;	LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÊݸ
;
;		SaveLMpreferences p1
;
;		p1=ʸ»úÎó	: ¥ª¥×¥·¥ç¥ó
;						p1 = "" ¡§ Ϣ³¼èÆÀ¤ËºÇŬ²½¤¹¤ë
;
;		Ìá¤êÃÍ		: LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ëÆâÍÆ
;
;*******************************************************************************
#deffunc SaveLMpreferences str savetxt
	
	preferences_lyricsmaster = savetxt
	;savetxt=""¤Î¤È¤­¡¢ºÇ¸å¤Ë¥í¡¼¥É¤·¤¿¤â¤Î¤¬¤¢¤ì¤Ð¤½¤ì¤ÇÊݸ¤·¤Æ¤â¤È¤ËÌ᤹
	if savetxt = "" {
		if vartype(preferences_lyricsmaster_b)=2 {
			;ºÇ¸å¤Ë¥í¡¼¥É¤·¤¿ÀßÄê
			preferences_lyricsmaster = preferences_lyricsmaster_b
		}else {
			;¥í¡¼¥É¤·¤¿¤â¤Î¤¬¤Ê¤¯¤Æʸ»úÎ󤬶õ¤Ê¤é²¿¤â¤·¤Ê¤¤
			return 0
		}
	}
	//LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÊݸ
	notesel preferences_lyricsmaster
	notesave dirinfo($1001A)+"\\preferences.lyricsmaster"
	noteunsel
	
	return 1
;*******************************************************************************
;	LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òºÇ¸å¤Ë¥í¡¼¥É¤·¤¿¤È¤­¤Î¾õÂÖ¤ËÌᤷ¤ÆÊݸ¤¹¤ë¥Þ¥¯¥í
;
;		SaveLMpreferences_LastLoad
;
;*******************************************************************************
#define global SaveLMpreferences_LastLoad SaveLMpreferences ""
	
;*******************************************************************************
;	LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¥Æ¥­¥¹¥È¤òÆÃÄê¤Î²Î»ì¥µ¥¤¥È¤«¤é¸¡º÷¤¹¤ë¤è¤¦¤ËÊѹ¹¤¹¤ë
;
;		ReplaceSearchSiteLMpreferences p1
;
;		p1=ʸ»úÎó	: LyricsMasterÀßÄê¥Õ¥¡¥¤¥ë¥Æ¥­¥¹¥È
;		p2=ʸ»úÎó	: ²Î»ì¥µ¥¤¥È̾
;
;		Ìá¤êÃÍ		: Êѹ¹¤µ¤ì¤¿LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ëÆâÍÆ
;
;*******************************************************************************
#defcfunc ReplaceSearchSiteLMpreferences str savetxt, str sitetxt
	
	preferences_lyricsmaster = savetxt
	;savetxt=""¤Î¤È¤­¡¢ºÇ¸å¤Ë¥í¡¼¥É¤·¤¿¤â¤Î¤¬¤¢¤ì¤Ð¤½¤ì¤ÇÊݸ¤·¤Æ¤â¤È¤ËÌ᤹
	if savetxt = "" {
		if vartype(preferences_lyricsmaster_b)=2 {
			;ºÇ¸å¤Ë¥í¡¼¥É¤·¤¿ÀßÄê
			preferences_lyricsmaster = preferences_lyricsmaster_b
		}else {
			;¥í¡¼¥É¤·¤¿¤â¤Î¤¬¤Ê¤¯¤Æʸ»úÎ󤬶õ¤Ê¤é²¿¤â¤·¤Ê¤¤
			return 0
		}
	}
	if sitetxt= "¤¦¤¿¤Þ¤Ã¤×" {
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useUtamap\tFalse", "search_useUtamap\tTrue")
	}else : if sitetxt="²Î»ìGET!!" {
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useKashiGet\tFalse", "search_useKashiGet\tTrue")
	}else : if sitetxt="²Î¥Í¥Ã¥È" {
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useUtanet\tFalse", "search_useUtanet\tTrue")
	}else : if sitetxt="¥¢¥Ë¥á¥½¥ó¥°¤Î²Î»ì¤Ê¤é¤³¤³¤Ë¤ª¤Þ¤«¤»¡©" {
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useAslse\tFalse", "search_useAslse\tTrue")
	}else : if sitetxt="SING365.COM" {
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useSing365com\tFalse", "search_useSing365com\tTrue")
	}else : if sitetxt="Lyrics Search Engine" {
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useLyricsSearchEngine\tFalse", "search_useLyricsSearchEngine\tTrue")
	}else {
		preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useExtraEngine\tFalse", "search_useExtraEngine\tTrue")
	}
	
	return preferences_lyricsmaster
	
#global


;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	¥¿¥¤¥à¥¿¥°ÉÕ¤­²Î»ìÀ¸À® ¥â¥¸¥å¡¼¥ë
;
;		¥¿¥¤¥à¥¿¥°¾ðÊó¤Ë¤Ä¤¤¤Æ @ http://w10.oroti.net/timetag/infoofdb.html
;		RhythmicaLyrics¤«¤é»ý¤Ã¤Æ¤­¤Æ¤½¤Î¤Þ¤Þ
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#module TimetagLyrics
;//2¥Ð¥¤¥Èʸ»úȽÄê
#define ctype wbyte(%1) ( (( (129<=%1)&(%1<=159) )||( (224<=%1)&(%1<=252) )) )
;*******************************************************************************
;	²Î»ì¤È¥¿¥¤¥à¥¿¥°¾ðÊ󤫤饿¥¤¥à¥¿¥°ÉÕ¤­²Î»ì¤òÀ¸À®
;
;		ApplyTimetagData( p1, p2 )
;
;		p1=ʸ»úÎó	: ²Î»ì
;		p2=ʸ»úÎó	: ¥¿¥¤¥à¥¿¥°¾ðÊó
;
;		Ìá¤êÃÍ		: ¥¿¥¤¥à¥¿¥°ÉÕ¤­²Î»ì
;
;*******************************************************************************
#defcfunc ApplyTimetagData str kasi_, var data

	kasi=kasi_
	tekiyo=""
	di=0 :ki=0
	repeat
		getstr temp_data, data, di :di+=strsize
		if strsize=0 {
			;²Î»ì¤¬»Ä¤Ã¤Æ¤¿¤é
			if ki<strlen(kasi) :tekiyo+="\n"+strmid(kasi,ki,strlen(kasi))
			break
		}
		if cnt>0 :tekiyo+="\n"
		if peek(temp_data,0)='@' :tekiyo+=temp_data :continue

		getstr temp_kasi, kasi, ki :ki+=strsize
		t_data_index=0
		t_kasi_index=0
		mojisu=""
		repeat strlen(temp_data)
			if 48<=peek(temp_data,cnt) && peek(temp_data,cnt)<=57 {
				;0¡Á9¤Ê¤éʸ»ú¿ô¤È¤·¤ÆÀѤó¤Ç¤¤¤¯
				mojisu+=strmid(temp_data,cnt,1)
				continue
			}else {
				;¿ô»ú¤¸¤ã¤Ê¤¤
				if mojisu!"" {
					;´û¤Ëmojisu¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤¿¤é¡¢Ê¸»ú¿ô¤Ö¤ó²Î»ì¤ò½¦¤Ã¤Æ¤¤¤¯
					repeat int(mojisu)
						if t_kasi_index>=strlen(temp_kasi) :break
						i=wbyte(peek(temp_kasi,t_kasi_index))+1
						tekiyo+=strmid(temp_kasi,t_kasi_index,i)
						t_kasi_index+=i
					loop
					mojisu=""
				}
				;¤³¤ÎÀ西¥¤¥à¥¿¥°¤«¤É¤¦¤«
				i=tagkana(temp_data,cnt)
				if i>0 {
					tekiyo+=strmid(temp_data,cnt,i+1)
					continue cnt+i+1
				}
				;¤½¤ì°Ê³°¡£¥Û¥ó¥È¤Ï¤³¤³¤Þ¤ÇÍè¤Ê¤¤¤ó¤À¤±¤É°ì±þ¡£¤½¤Î¤Þ¤Þ³ÊǼ¤·¤Æ¤¤¤¯
				i=wbyte(peek(temp_data,cnt))+1
				tekiyo+=strmid(temp_data,cnt,i)
				continue cnt+i
			}
		loop
		;¤â¤·²Î»ì¤¬1¹Ôʬ¾ÃÈñ¤·¤Æ¤Ê¤«¤Ã¤¿¤é»Ä¤ê¤òËöÈø¤Ë¤¯¤Ã¤Ä¤±¤ë
		if t_kasi_index<strlen(temp_kasi) :tekiyo+=strmid(temp_kasi,t_kasi_index,strlen(temp_kasi))
	loop

	return tekiyo

;¥¿¥¤¥à¥¿¥°¤«³Îǧ
#defcfunc tagkana var sp1, int index
	temp=strmid(sp1,index+0,1) :if temp="" :return 0 :else :if peek(temp,0)!'[' :return 0
	temp=strmid(sp1,index+1,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0
	temp=strmid(sp1,index+2,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0
	temp=strmid(sp1,index+3,1) :if temp="" :return 0 :else :if peek(temp,0)!':' :return 0
	temp=strmid(sp1,index+4,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0
	temp=strmid(sp1,index+5,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0
	temp=strmid(sp1,index+6,1) :if temp="" :return 0
		if peek(temp,0)=']' :return 6
		if peek(temp,0)!':' && peek(temp,0)!'.' :return 0
		flametime=(peek(temp,0)='.')
	temp=strmid(sp1,index+7,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0
	temp=strmid(sp1,index+8,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0
	temp=strmid(sp1,index+9,1) :if temp="" :return 0 :else :if peek(temp,0)!']' :return 0
	if flametime {
		poke sp1, index+6, ':'
		if op_save_dot@=0 {
			op_save_dot@=2 :op_save_dot2@=2
			if is_gsel_create(5) {
				selg=ginfo_sel
				gsel 5
				objprm id_op_save_dot@,1
				gsel selg
			}
		}
	}else {
	}
	return 9

#global


;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	¥Ä¡¼¥ë¥Á¥Ã¥× ¥â¥¸¥å¡¼¥ë
;
;
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#module "tooltip"

;// ¥Ä¡¼¥ë¥Á¥Ã¥×½é´ü²½
#deffunc tipset_init
	winobj "tooltips_class32","",0,3 ;,400,400,0,0
	htooltip(tip_id)=objinfo(stat,2)
	dim RECT,4

	;¢§comctl32.dll¤Î¥Ð¡¼¥¸¥ç¥ó¤¬4.70°Ê¹ß¤ÇÍ­¸ú
	;    ¢­
	RECT=3,3,3,3
	SendMsg htooltip,TTM_SETMARGIN,0,varptr(RECT)	;¥Þ¡¼¥¸¥ó
	SendMsg htooltip,TTM_SETMAXTIPWIDTH,0,500		;tipwidth
	SendMsg htooltip,TTM_SETDELAYTIME,2,30000		;ɽ¼¨»þ´Ö
	return

;// ¥Ä¡¼¥ë¥Á¥Ã¥×¥»¥Ã¥È
#deffunc tipset int _ObjID, str _temp
	Objh=objinfo_hwnd(_ObjID)
	temp=_temp

	GetClientRect Objh, varptr(RECT)
	dim TOOLINFO,11
	;TOOLINFO¹½Â¤ÂÎ
	TOOLINFO(0) = 40, $10, Objh, 0, RECT.0, RECT.1, RECT.2, RECT.3, 0, varptr(temp)
	
	SendMsg htooltip,TTM_ADDTOOL,0,varptr(TOOLINFO)

	return
#global

;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
;	¥À¥¤¥¢¥í¥°¥Ü¥Ã¥¯¥¹´ØÏ¢ ¥â¥¸¥å¡¼¥ë
;
;		HSP module & macro Library¡Êstdlib¡Ëexdialog.as (HSP-NEXT ¤µ¤¯¤éÍͺî) ¤«¤éÈ´¿è¡¢¥â¥¸¥å¡¼¥ë²½
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#module exdlg
;*******************************************************************************
;   ¥Õ¥©¥ë¥ÀÁªÂò¥À¥¤¥¢¥í¥° (foldlg)
;
;   Ìá¤êÃÍ : À®¸ù stat=0, refstr=ÁªÂò¥Õ¥©¥ë¥À̾,¼ºÇÔ, stat=1
;
;   ¡¦½ñ¼°     foldlg dlgtitle,deffolder,nOption
;   ¡¦°ú¿ô     dlgtitle  (str) : ¥À¥¤¥¢¥í¥°¥¿¥¤¥È¥ë̾ (¾Êά²Ä)
;              deffolder (str) : ½é´ü¥Õ¥©¥ë¥À̾
;              nOption   (int) : 0,1,$400(0) ¥¹¥¿¥¤¥ë¥ª¥×¥·¥ç¥óÃÍ
;   ¡¦¥¿¥¤¥×   ¥â¥¸¥å¡¼¥ëÌ¿Îá
;
;-- (NOTE) ---------------------------------------------------------------------
;
;   (»ÈÍÑÎã)
;   foldlg "",exedir,0
;   dialog refstr,0
;*******************************************************************************
#deffunc foldlg str prm1,str prm2,int prm3
mref ref,65
	ls=strlen(prm1)
	dlgtitle  = prm1
	if ls==0 : dlgtitle="¥Õ¥©¥ë¥À¤òÁªÂò¤·¤Æ²¼¤µ¤¤"
	sdim deffolder,MAX_PATH
	deffolder = prm2
	if strlen(deffolder)==0 : deffolder=exedir
	nOption   = prm3  ;(0,1,$4000)
	if (nOption!0)|(nOption!1)|(nOption!$4000) : nOption=0

	dim browsinfo,64 : sdim retbuf,MAX_PATH
	browsinfo(0) = hwnd
	browsinfo(3) = varptr(dlgtitle)
	browsinfo(4) = nOption

	;BrowseCallback
	;½é´ü¥Õ¥©¥ë¥À»ØÄê²Äǽ
	;
	if deffolder!="" {
			dim brproc, 9
			browsinfo(5)=varptr(brproc) : browsinfo(6)=varptr(deffolder)
			p=varptr(SendMessage)
			brproc    = $08247C83, $90177501, $102474FF, $6668016A, $FF000004
			brproc(5) = $B8102474, p, $C031D0FF, $000010C2
	}
	SHBrowseForFolder varptr(browsinfo)     : pidl=stat
	SHGetPathFromIDList pidl,varptr(retbuf) ;: pidl=stat
	CoTaskMemFree pidl
	ref=retbuf : ls=strlen(retbuf)
	if ls==0 : ret=1 : else : ret=0
	dim browsinfo,0  : sdim retbuf,0 : sdim deffolder,0
return ret
#global


¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2021-09-09 (ÌÚ) 05:01:09