DJxTOYO様 > MySuperGrid.cpp > L6321 > CMySuperGrid::ChangeSubItemText > > と言う関数があります。 > これはあちこちから呼ばれる共通の各カラムのセルの文字列設定関数だと推測します。 > ここのL6375に > strText.TrimRight(); > と言う右側スペース削除が見受けられます。
返信ありがとうございます。 結果から申し上げますと、おっしゃる通りでした。 実はここも候補の一つだったのですが、後回しにしておりました。
ファイル名をいじると拡張子が付いてしまう現象は公開バージョンでも同じでしたので 特に他に問題はなさそうです。
見落としたポイントとして、 ・文字列の左側は全くノーケア、いくらでも半角・全角スペースが入るということ ・C++のTrim系関数は全角、半角関係なしにスペースを削除することを知らなかった というところです。
たいていTrimというと、どの言語でも半角スペースだけで、全角はどうやって消すの? みたいな質問が多いのですが、C++は違うのですね。
ただ、この行を殺すと半角スペースも全部許可になってしまうのが難点なので、 最初の文字と最後の文字が半角スペースの場合は、全角も含めてTrimをするように 書いておきました(TrimLeftも入れました)。
これですと、全角スペースが一番外で、その内側に半角スペースがあった場合は 半角スペースが残ってしまいますが、それに対応しようとすると、いろいろやり方は 思いつくのですが、C++の文法が全くわからないので、かなり厳しい道のりに なりそうであきらめました。
本当にありがとうございました。 |