ctr_Repair/trunk/CardSaveData/common/savefile/savefile.cpp

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;
}