2004-09-06(月) 曇 安静時心拍数 46 [長年日記]
_ Preferences API
Java の Preferences API を使って Windows のレジストリに文字列データを書き込むと英大文字の前に / が付いてしまうようです。例えば C:\Program Files\ は /C:\/Program /Files\ となってしまいます。これでは native のプログラムからレジストリの値を参照しようとしたとき不整合が生じてしまいます。しかたがないので
/* string value(e.g. /C:\/Program /Files\) の操作 */ while(1){ std::string::size_type i = value.find("/"); if( i == std::string::npos ) break; if( isupper(value[i+1]) ){ value.erase(i,1); /* / の次に英大文字がある時は / を削除 */ } else if( value[i+1] == '/' ){ value.replace(i, 2, "\\"); /* // を \ に置換 */ } }
として読んでいるのですがもっと良い方法ありませんかね。