fc2ブログ

Speeeeed Ver1.51

置換えリストエディタにバグがあったので修正です。
長い文字列を登録しても保存時に256バイト以降が勝手に削除されてました。
あと、ちょっとしたGUIのバグ修正も。

どうやらリストコントロールに問題がある感じ。
リストコントロールにLVM_GETITEMTEXTを投げ戻る値は通常ならLVITEM構造体のcchTextMaxで指定したサイズより文字列が大きい場合は、cchTextMax-1だけコピーし最後に\0を付加し戻り値としてcchTextMax-1が返りますが、2バイト文字が含まれる場合cchTextMaxコピーしcchTextMaxを返します。
そのため、MFCの実装でもし戻り値が用意したバッファ-1のサイズならサイズを確保しなおし再取得する訳ですが、一つ大きい値が返ってくるのでそこで処理が終わってしまい後ろが切れてしまいます。
# ただしUnicode版(W版)では発生しないと思われます。

この問題結構影響大きいですね。
Clipyも同様に後ろが切れるバグ抱えてます。
とは言えClipyにおいてNT系はW版のAPI使ってるので9x系でしか起きない問題ですが。

他に最近アセンブラで色々遊んでるので文字列検索のルーチンをアセンブラ化して更に高速化させようかと思ったけどVC++の最適化ってかなり凄いので下手に弄ったら余計遅くなるような気もしたのでこれはヤメ。
サイズの最適化なら上手くできてるか簡単に把握できますが速度の最適化は環境によっても変わるから確かめにくいですし。


では以下更新点の詳細です。
・長い置換え文字列を保存時、きちんと保存されないバグを修正。
・置換えパターンの追加ダイアログが有効にならない場合があるバグを修正。

コメントの投稿

非公開コメント

いつもありがたく使わせていただいています。
ファイル内だけではなく ファイル名やフォルダ名も置換リストを使い
一括置換出来るようなバージョンアップは出来ないでしょうか?
その際に「ファイル名とフォルダ名も置換」や「ファイル名とフォルダ名だけを置換」といったチェックフラグで指定できるととても助かるのですが・・・
是非一度検討していただけませんか?

リネームツールを使ってください

そう言う機能は目的外機能で実装しても使いにくいものが出来るだけで
それ専用のソフト使った方が結局便利なので実装するつもりは有りません。

指定方法を教えてください

こんばんは、いつも使わせていただいてます。
すみませんが、以下の場合はどう指定すればうまく置換できるか、教えていただけませんか。
置換文字列が「 <a href="」
置換後文字列が「 <a href="/」
置換文字列が、うまく検索されてこないのです・・・
全角スペースが悪さしているんでしょうか。
よろしくお願いいたします。

Re: 指定方法を教えてください

すいません、今頃気が付きました。
とりあえず試してみましたがこちらの環境では問題ありませんでした。
まだ解決してい無いのであればサポート掲示板の方に問題が発生する詳しい状況などをお書きください。
ここだと見過ごす可能性が高いです。
月別アーカイブ
カテゴリー
リンク
ブログ内検索
RSSフィード