クリップボードから変数への代入についてNo.04999
アバカム さん 05/12/28 21:28
 
はじめまして、アバカムと申します。

ヘルプを見てもわからないことがあったため、
ご教授願いたいと思い、投稿いたします。

現在欧文ファイルで、単語の置換を自動化するマクロを
作っているのですが、アクセント記号の有る単語を
copyでクリップボードに格納した後、変数に代入すると、
単語からアクセント記号が抜け、messageコマンドで正しく
表示されなかったり、検索に引っかからなくなってしまいます。

アクセント記号をなくさないようにするには
どうすればよいでしょうか?


動作内容:
変更対象となるソースファイルA,
検索する単語、置換する単語がリストされているファイルB
があり、
ファイルBから検索される単語、
置換される単語を変数に代入し、
ファイルAにて、置換する。

ちなみにファイルA、Bともに欧文コードで開いた状態で、
マクロは開始されます。

ソース(一部):


beginclipboardread;
$search_word = getclipboard;  //検索文言取得
message $search_word; //この時点でアクセント記号が抜けている



beginclipboardread;
$replace_word = getclipboard;  //置換文言取得
message $replace_word; //この時点でアクセント記号が抜けている



setactivehidemaru #handle_file_a;  //ファイルAをアクティブにする
replacedown $search_word, $replace_word, word, ask;

endmacro;

[ ]
RE:04999 クリップボードから変数への代入No.05000
さん 05/12/29 08:24
 
こんにちは。

私の場合、英語以外はUTF-8で保存して、あとは全てそのUTF-8で
編集処理しています。
たぶん、それでクリアできると思うのですが、いかがでしょうか。

[ ]
RE:05000 クリップボードから変数への代入No.05001
アバカム さん 05/12/29 23:37
 
>こんにちは。
>
>私の場合、英語以外はUTF-8で保存して、あとは全てそのUTF-8で
>編集処理しています。
>たぶん、それでクリアできると思うのですが、いかがでしょうか。

ご返信ありがとうございます。

エンコードの種類をUTF-8に変え、試してみたのですが、
欧文で実行したときと結果は変わりませんでした。

変数に入れられる文字のエンコードの種類は
決まっているのでしょうか?

[ ]
RE:05001 クリップボードから変数への代入No.05002
h-tom さん 05/12/29 23:59
 

h-tom です。

>変数に入れられる文字のエンコードの種類は
>決まっているのでしょうか?
基本的にはShift-JISのみだったかな?

参考になりそうな過去ログ。
http://www.maruo.co.jp/hidesoft/4/x04874_.html#4874

[ ]
RE:05001 クリップボードから変数への代入No.05004
さん 05/12/30 06:57
 

>エンコードの種類をUTF-8に変え、試してみたのですが、
>欧文で実行したときと結果は変わりませんでした。

参考までですが、私の検証方法です。
OSも関係する?のかも。

環境:
WinXP SP1
秀丸エディタ Ver5.12

ブラウザに表示された、

¿Dónde está el servicio?
(このフォーラム上では文字実体参照自体が表示されてしまいますが、
特殊文字が表示されていると仮定)

をコピー。

秀丸に貼り付けて、エンコードの種類をUTF-8にして test.txt として保存。

以下のマクロ、
---
selectall;
copy;
beginclipboardread;
$a = getclipboard;
message $a;
endmacro;
---
を実行すると、message に
¿Dónde está el servicio?
が表示されます。

[ ]
RE:05002 クリップボードから変数への代入No.05005
アバカム さん 05/12/30 11:15
 
h-tomさん、コメントありがとうございました。

参考にしてみます。

[ ]
RE:05004 クリップボードから変数への代入No.05006
アバカム さん 05/12/30 11:48
 
>環境:
>WinXP SP1
>秀丸エディタ Ver5.12
>
>ブラウザに表示された、
>
>¿Dónde está el servicio?
>(このフォーラム上では文字実体参照自体が表示されてしまいますが、
>特殊文字が表示されていると仮定)
>
>をコピー。
>↓
>秀丸に貼り付けて、エンコードの種類をUTF-8にして test.txt として保存。
>↓
>以下のマクロ、
>---
>selectall;
>copy;
>beginclipboardread;
>$a = getclipboard;
>message $a;
>endmacro;
>---
>を実行すると、message に
>¿Dónde está el servicio?
>が表示されます。
桂さん、コメントありがとうございます。

上記のとおり、エンコードをUTF-8にし、うまくいきました。
しかし、エンコードを欧文に戻すと、文字化けが発生してしまいました。
対象のファイルはプログラムのソースコードの一部として
使われているため、エンコードは欧文でなければならない
都合があるのですが、何か方法はありますでしょうか?

[ ]
RE:05006 クリップボードから変数への代入No.05007
さん 05/12/30 20:46
 
>しかし、エンコードを欧文に戻すと、文字化けが発生してしまいました。

「エンコードを欧文に戻す」のではなくて、
「エンコードを欧文にして保存」すれば大丈夫と思います。

[ ]
RE:05007 クリップボードから変数への代入No.05008
アバカム さん 05/12/31 09:31
 
桂さま、コメントありがとうございます。

>「エンコードを欧文に戻す」のではなくて、
>「エンコードを欧文にして保存」すれば大丈夫と思います。
上記のとおり、保存の際にエンコードに欧文を指定すると、
文字化けすることがありませんでした。

これで、マクロのほうもうまくいきそうです。
ありがとうございました。

[ ]