mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
42 lines
905 B
C++
42 lines
905 B
C++
//共通関数
|
|
|
|
#include "savefile.h"
|
|
|
|
//終端から前方検索で見つかった境界("/"=0x2f)位置を返す
|
|
//top :検索範囲の先頭指定
|
|
int GetPosDelmLast(wchar_t *s,int top)
|
|
{
|
|
size_t i = wcslen(s);
|
|
if (i <= top)return 0;
|
|
i--;
|
|
while(i > top-1){
|
|
if (s[i]==L'/')return i;
|
|
i--;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
//パス名チェック for SD
|
|
//fs関数で引数エラー(INVALID_ARGUMENT)にならないものをチェック
|
|
bool CheckPath(wchar_t *s)
|
|
{
|
|
int i;
|
|
size_t n = wcslen(s);
|
|
|
|
if ((n > 253) || (n==0))return false;
|
|
if (n>251)
|
|
{//ディレクトリオープン時は251まで
|
|
if ((s[251]==L'/') || (s[252]==L'/'))return false;
|
|
}
|
|
|
|
for (i =0;i< n-1;i++)
|
|
{
|
|
if ((s[i-1] == ' ')||(s[i+1] == ' '))return false;//厳密にはスラッシュ前後と最後尾
|
|
if ((s[i-1] == 0x5c) ||(s[i+1] == 0x5c))return false;//0x5c = 円マーク
|
|
}
|
|
return true;
|
|
|
|
}
|
|
|