このアプリケーションは何年にもわたって進化してきたため、まだいくつかのINIファイルがあります。GetPrivateProfileStringを使用してエントリを読み取るクラスがあります。
クラスの一番上にこれが表示されます:
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key, string def, StringBuilder retVal,
int size, string filePath);
そして、次のようなパブリックメソッドがあるようです。
public string IniReadValue(string Section, string Key)
{
// If string greater than 254 characters (255th spot is null-terminator),
// string will be truncated.
const int capacity = 255;
StringBuilder temp = new StringBuilder(capacity);
int i = GetPrivateProfileString(Section, Key, "", temp,
capacity, this.m_Path);
return temp.ToString();
}
最近、GetPrivateProfileStringがデータをトリミングしていることに気付きました。したがって、INIファイルに次のようなエントリがある場合:
SomeData=この文の前後にある3つの末尾のスペースに注意してください。
次のように取得します(左右にトリミングされていることに注意してください。引用符は無視してください)。
「この文の前後にある3つの末尾のスペースに注意してください。」
トリムしたくない。それは私の手に負えないですか?INIファイルで等号の後にスペースを入れることはできません(例:SomeData =)?