YAYA



  1. postic
  2. aya,saori/yaya.dll
    strstr,saori/yaya.dll,STRSTR

  1. charset, Shift_JIS
    charset.dic, Shift_JIS
    charset.output, Shift_JIS
    charset.file, Shift_JIS
    charset.save, Shift_JIS
    charset.extension, Shift_JIS
  2. http://nikolat.phpfogapp.com/ukagaka/yaya-as-saori-fixed/

asort
{
	if ARRAYSIZE(REQ.ARGS) < 2 {

		-1
		return
	}
	
	_ary0 = SPLIT(REQ.ARGS[1],CHR(0x01))
	_ary1 = ASORT(REQ.ARGS[0], _ary0) 
	
	_s = ""
	for _i = 0; _i < ARRAYSIZE(_ary1); _i++ {
		if (_i > 0) { _s = _s + CHR(0x01) }
		_s = _s + _ary1[_i]
	}
	RES.RESULT =_s
}







\_q\x

fenum
{
	if ARRAYSIZE(REQ.ARGS) < 1 {

		-1
		return
	}
	RES.RESULT = FENUM(REQ.ARGS[0])
}
	RES.RESULT = FENUM(REQ.ARGS[0], REQ.ARGS[1])

	if GETTYPE(_result) == 1
		RES.VALUE0 = "EOF"
	else 
		RES.RESULT = _result
	if GETTYPE(_result) == 1
		RES.RESULT = 0
	else {
		RES.RESULT = 1
		RES.VALUE0 = _result
	}



GetSatoriVarList
{
	_FileName = '..\satori_savedata.txt'
	_i = 0

	_charset = 'Shift_JIS'
	FCHARSET(_charset)
	if !FOPEN(_FileName, 'r') {
		RES.RESULT = -1
		return
	}
	
	while 1 {
		if (_s = FREAD(_FileName)) == -1; break




		if _n == -1 { continue }
		else { _s = SUBSTR(_s,1,STRLEN(_s) -1) }


		_n = STRSTR(_s,CHR(0x09),0)
		if _n >  0 { _s = SUBSTR(_s,0,_n) }


		LETTONAME("RES.VALUE%(_i)", _s)
		_i++ 
	}
	FCLOSE(_FileName)
	RES.RESULT = _i -1
}












sort
{ 
	if ARRAYSIZE(REQ.ARGS) < 1 {

		-1
		return
	} 
	arX = SPLIT(REQ.ARGS[0],CHR(0x01)) 
	_x = quicksort(0,ARRAYSIZE(arX)-1) 
	_s = ""
	for _i = 0; _i < ARRAYSIZE(arX); _i++ {
		if (_i > 0) { _s = _s + CHR(0x01) }
		_s = _s + arX[_i]
	}
	RES.RESULT =_s
	ERASEVAR("arX")
}

quicksort
{ 
	_first = _argv[0]
	_last  = _argv[1] 
	if (_first == _last) { return }
	_p = pivot(_first,_last)
	if (_p != -1) {
		_k = partition(_first,_last,arX[_p])
		quicksort(_first,_k-1)
		quicksort(_k,_last)
	} 
}

pivot
{
   	_i = _argv[0]
   	_j = _argv[1] 
   	_k = _i + 1 
 	while (_k <= _j && arX[_i] == arX[_k]) { _k++ } 
	if (_k > _j) {
		-1 
		return
	} 
	if (arX[_i] >= arX[_k]) { _i } else { _k }
}

partition
{
   	_i = _argv[0]
   	_j = _argv[1]
  	_x = _argv[2] 
  	_l = _i
	_r = _j 
  	while (_l <= _r) { 
		while (_l <= _j && arX[_l] < _x) { _l++ } 
		while (_r >= _i && arX[_r] >= _x) { _r-- } 
		if (_l > _r) { break }
		_t = arX[_l]
		arX[_l] = arX[_r]
		arX[_r] = _t
    		_l++ 
		_r--
	}
	_l
   	return 
}



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS