クリップボードの文字配列についてNo.03072
hiro さん 02/03/25 00:13
 
hiroです。たびたびお世話になっています。
またしても行き詰まってしまいお手上げの状態です。過去記事も探したのですが、見
当たりませんでした。ヘルプなども参照していますが、理屈通りにうまく動いてくれ
ないようです(私が勘違いしているのかもしれませんが)。どこに問題があるのか見
当がつきません。
やりたいことは単純にクリップボードの内容(12行入っているのを確認済み)を配
列に取り込んでゆき、順次改行を入れながらコピー(インサート)していくことです。
以下のコードですが、デバッグの結果でも一行目しか取り込まれていないようです。
条件式を変えてみても同じなので取り込み自体に問題があるのだと思います。

beginclipboardread;

#i =0;

$set[#i]=getclipboard;
while(1){
#i = #i +1;
$set[#i]=getclipboard;
if($set [#i] == "") break;
}
gofiletop;

#ws=#i;
#i=0;
while( #i < #ws ){
insert $set[#i];
insert "\n";
#i=#i+1;
}



どこに問題があるのかアドバイスだけでもお願い致します。

[ ]
RE:03072 クリップボードの文字配列についNo.03075
ひろ さん 02/03/25 12:28
 
 hiro さん今日は、ひろです。
> insert $set[#i];
 これが原因です。
 一応改善検討項目になっています。詳しくは、
http://www.maruo.co.jp/turukame/3/m020222.html#805
をご覧ください。

 回避策は、
  $s = $set[#i];
  if( $s == "" )break;
  insert $s;
というように、いったん文字列変数に代入することです。

 P.S 改行もクリップボードに格納されているので、そのまま書き
込むのであれば、
> insert "\n";
は必要ないと思います。

[ ]
RE:03075 クリップボードの文字配列についNo.03081
hiro さん 02/03/25 22:17
 
ひろさんありがとうございました。
ご教授の通りうまく行きました。しかし、私はgetclipboardの機能について根本的な
思い違いをしていたことに気づきました。すなわち履歴戻しのようなコピー単位での
取り込みを想定していたのです。つまりクリップボード履歴の中にある番号を一行だ
と解釈していたのです。いずれにせよ、長い間腑に落ちなかった問題が解けてすっき
りしました。ありがとうございます。

[ ]
RE:03072 クリップボードの文字配列についNo.03082
山紫水明 さん 02/03/25 22:46
 
 hiroさん,ひろさん,こんばんは。

》以下のコードですが、デバッグの結果でも一行目しか取り込まれていないようで
》す。
》条件式を変えてみても同じなので取り込み自体に問題があるのだと思います。

 お示しのマクロでこちらでは実行できましたけど。

次のサンプルを全部範囲選択コピーしてマクロを実行してみてください。

---------------
秀丸エディタ1
秀丸エディタ2
秀丸エディタ3
秀丸エディタ4
秀丸エディタ5
秀丸エディタ6
秀丸エディタ7
---------------

》12行入っているのを確認済み

 これはどのようにして確認されたのでしょう?
 もしかしたらクリップボードの履歴のことを指しておられるのでしょうか。

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

[ ]
RE:03082 クリップボードの文字配列についNo.03083
ひろ さん 02/03/25 23:36
 
 山紫水明さん今日は、ひろです。
>  お示しのマクロでこちらでは実行できましたけど。
 失礼しました。これは menu 系の文を使っているわけではないので、今回
の例は正しく動きますね。

[ ]
RE:03082 クリップボードの文字配列についNo.03087
hiro さん 02/03/26 20:36
 
>
> これはどのようにして確認されたのでしょう?
> もしかしたらクリップボードの履歴のことを指しておられるのでしょうか。
>

こんばんはhiroです。山紫水明さん、ひろさんお騒がせしました。ご指摘の通り
クリップボード履歴のことと勘違いしておりました。このような勘違いをしたのは私
だけでしょうか・・・・。いずれにせよお気遣いありがとうございました。

[ ]