「変換リストによる連続置換」のUTF-8対応No.00146
Navian さん 10/02/27 20:29
 
はじめまして。
「変換リストによる連続置換」マクロv2.32を、英語テキストの和訳の補助に重宝さ
せていただいています。
そこで表題の件なのですが、UTF-8形式テキストの中で「á」「é」「&#23
7;」などのS-JISに無い字(このカキコが文字化けするかも知れないので説明してお
くと、それぞれa,e,iの上にアクセント記号の'が付いた字です)を置換することが出
来ません。もし可能であれば、これらの字を置換できると非常に助かるのですが・・
山紫水明様、ご検討をよろしくお願いします。

[ ]
RE:00146 「変換リストによる連続置換」のNo.00147
山紫水明 さん 10/02/28 10:32
 
 Navianさん,

>UTF-8形式テキストの中で「á」「é」「&#23 7;」などのS-JISに無い
>字(このカキコが文字化けするかも知れないので説明しておくと、それぞれa,e,
>iの上にアクセント記号の'が付いた字です)を置換することが出来ません。も
>し可能であれば、これらの字を置換できると非常に助かるのですが・・

 変換用ファイルからデータを変数に格納するときに,ユニコード文字を扱うの
が,このマクロだけでは無理のようです。
 サンプルの一部と作業内容をお知らせいただければ,マクロ実行の前後に何ら
かの処理をすることで,もしかしたら可能になるかもしれません。

     では, (^^)/~
                                    山紫水明
                                    SANSHISUIMEI

[ ]
RE:00147 「変換リストによる連続置換」のNo.00148
Iranoan さん 10/02/28 15:04
 
 山紫水明さん今日は、Iranoan です。
>  変換用ファイルからデータを変数に格納するときに,ユニコード文字を扱うの
> が,このマクロだけでは無理のようです。
 横から失礼します。
 中身をパッと見た限り、現在の方法だとマクロの各種関数が完全には
Unicode に対応していないので無理でしょうね。

 ただ田楽 DLL を使うのを止め、gettext() 関数は、
//------------------------------------------------------------
while( code != 0x0D ){
  $$s = $$s + unichar( unicode );
  right;
}
//------------------------------------------------------------
と、全て文字列を Unicode で取り込めば出来るかも? と思いました。

[ ]
RE:00148 「変換リストによる連続置換」のNo.00149
Navian さん 10/02/28 17:25
 
山紫水明 さん、Iranoan さん、レスありがとうございます。

> サンプルの一部と作業内容をお知らせいただければ,マクロ実行の前後に何ら
> かの処理をすることで,もしかしたら可能になるかもしれません。

英文テキストの中に頻出する固有名詞を一括して和訳するのに使わせていただいて
います。で、現状では回避策として個々のユニコード文字をUTF-8対応のフリーの置換
ソフトで変換してから使っています。

例えば;
Álvaro Bautistaをアルバロ・バウティスタに置換したい場合、UTF-8対応の
フリーソ
フトで一旦ÁをAに変換してから、ListReplace.mac用の変換リストでは、

Alvaro Bautista,アルバロ・バウティスタ

として、マクロが通るようにしています。ただこのやり方だと変換されて欲しくない
部分まで変換されてしまう恐れもあるし、ListReplace.mac用の変換リストである
CSV形式が扱いやすいので、できればListReplace.mac用の変換リストだけで置換を
完結できれば・・と思っています。

[ ]
RE:00149 「変換リストによる連続置換」のNo.00150
h-tom さん 10/02/28 20:28
 

h-tom です。

マクロで、Shift_JIS以外の文字コードを扱う箇所が、気になったので、
ちょっと試してみました。(Ver.8です。)

外部DLLにデータを渡さなければ、何とかなるかもしれません。
外部DLLに、
  alvaro Bautista  (最初のaはアクセント付き。&#225)
を渡すと、外部DLLには、
  alvaro Bautista  (最初のaは小文字のa(0x61)。)
という文字が渡されます。(dllfuncの場合)
(dllfuncwなら、問題ないですが、田楽DLLは対応していませんし。)

マクロ内で、文字列をコピーしても、切り出しても、問題ないみたいですね。
(aはアクセント付きのまま、コピーされる)

ということで、リストファイルから、CSVを切り出す箇所を、田楽DLLを
使わずに行えば、何とかなりそうです。

[ ]
RE:00148 「変換リストによる連続置換」のNo.00151
山紫水明 さん 10/03/01 20:20
 
 Iranoanさん,

> 中身をパッと見た限り、現在の方法だとマクロの各種関数が完全には
>Unicode に対応していないので無理でしょうね。
> ただ田楽 DLL を使うのを止め、gettext() 関数は、

 わざわざマクロを見ていただき,コメントありがとうございます。
 gettext() 関数はユニコードには対応していないと思ったのは勘違いでした。
 田楽 DLL の"GETTOKEN"関数が対応していなかったようです。

     では, (^^)/~
                                    山紫水明
                                    SANSHISUIMEI

[ ]
RE:00150 「変換リストによる連続置換」のNo.00152
山紫水明 さん 10/03/01 20:42
 
 h-tomさん,

 マクロをわざわざ調べていただき,ご教示ありがとうございます。大変参考
になりました

>マクロ内で、文字列をコピーしても、切り出しても、問題ないみたいですね。
>(aはアクセント付きのまま、コピーされる)

 最初は gettext,gettext2 関数が対応していないと思いましたが,そうでは
なくご指摘のとおりこちらは問題ありませんでした。

>ということで、リストファイルから、CSVを切り出す箇所を、田楽DLLを
>使わずに行えば、何とかなりそうです。

 田楽DLLを使ったのは複数の区切り記号を容易に使えるからでした。リストフ
ァイルの区切りをいろいろ使い分けても,いちいち設定し直す必要がないからで
す。
 自前でこれをやると少し面倒になりそうなので,とりあえずは区切り符号を1
個に限定してやってみます。田楽DLLで杉浦さんにユニコードに対応していただけ
れば一番簡単に解決するのですが。(^^;
 まあ,複数の区切り符号を使い分けることは少ないと思われますで,実用上は
支障はないでしょう。

     では, (^^)/~
                                    山紫水明
                                    SANSHISUIMEI

[ ]
RE:00149 「変換リストによる連続置換」のNo.00153
山紫水明 さん 10/03/01 20:47
 
 Navianさん,

 とりあえず,ユニコードでも使えるようにして,アップしておきましたのでお試
しください。
http://homepage2.nifty.com/12sun/sansui.html

     では, (^^)/~
                                    山紫水明
                                    SANSHISUIMEI

[ ]
RE:00152 「変換リストによる連続置換」のNo.00154
Iranoan さん 10/03/02 01:01
 
 山紫水明さん今日は、Iranoan です。
>  最初は gettext,gettext2 関数が対応していないと思いましたが,そうでは
> なくご指摘のとおりこちらは問題ありませんでした。
 確かにそのようですね(^^;。
 失礼しました。

[ ]
RE:00153 「変換リストによる連続置換」のNo.00155
Navian さん 10/03/02 09:05
 
> とりあえず,ユニコードでも使えるようにして,アップしておきましたのでお試
>しください。
>http://homepage2.nifty.com/12sun/sansui.html

山紫水明さん、大変お手数をおかけします。
早速の新バージョンのご用意、ありがとうございます。
先ほど試させていただきましたが、unicode文字を含む変換リストでもバッチリ置換
できました!

山紫水明さん、Iranoanさん、h-tomさん、このたびは大変お世話になりましたm(_ _)
m また何かありました折りはよろしくお願いします。


[ ]