行番号付きコピーNo.18042
GeoGeo さん 04/09/24 10:22
 
はじめまして。GeoGeoといいます。
いつも使わせて頂いております。

最近、プログラムしていて、外部とのやり取りで
非常に時間が掛かっているものがあり簡単にできないかという提案です?

プログラムの一部をコピーしてクリップに入れメールに貼り付ける。
ここで、コピーする際に、行番号も一緒に追加というか添付できないものなのかお聞
きしたいのです。

いつも、コピーしてから行番号を付け足す作業が、苦痛になってきたのです。
こんな場合があります。
  新規に1番から振りなおして渡す。
  現在のプログラムの行番号をそのまま渡す
  任意の番号から行番号をつけて渡す。
これらができたらどんなに幸せなんだろうと、思うこのごろでした。
検討よろしくお願いします。
マクロとも思ったのですがよくわからないのでよろしくお願いします。

[ ]
RE:18042 行番号付きコピーNo.18043
たけのこ さん 04/09/24 10:49
 
一般ユーザのたけのこです。

処理相手がPGつーことで、かなりエラー処理を省いていますが以下のようなマク
ロでどうでしょう? #NUMBER_COLUMNの値は行番号の桁数、$NUMBER_DELIMITER
の値は行番号とテキストの間の文字列です。


#NUMBER_COLUMN = 5;
$NUMBER_DELIMITER = " : ";
if(selecting){
    #sx = seltopx;
    #sy = seltopy;
    #ex = selendx;
    #ey = selendy;
    escape;
    moveto #ex, #ey;
    #line = lineno;
    #num = 0;
    moveto 0, #sy;
    while(#num == 0){
        $num = input("start number", str(lineno));
        if($num == ""){
            endmacro;
        }
        #num = val($num);
    }
    setclipboard "";
    while(lineno < #line){
        golinetop;
        beginsel;
        golineend2;
        $s = gettext(seltopx, seltopy, selendx, selendy);
        call padding #num;
        addclipboard $$return + $NUMBER_DELIMITER + $s + "\n";
        escape;
        #num = #num + 1;
        right;
    }
}else{
    message "you must select text.";
}
endmacro;


padding:
$$s = str(##1);
while(strlen($$s) < #NUMBER_COLUMN){
    $$s = " " + $$s;
}
return $$s;


(^^)/”

[ ]
RE:18042 行番号付きコピーNo.18044
ENCODINGSHIFTJIS さん 04/09/24 11:40
 
マクロライブラリを 行番号 で検索し、「先人のソースを変形します」
秀まるおのホームページ−ライブラリ−秀丸エディタのマクロライブラリ  
行番号削除&作成
もう古いとお思いでしょうが、N88BASICの行番号を自動で削除&作成でき
ないかと思い作成しました。
----------------------- NUMclip.mac
// N88basic用行番号作成マクロ の 変形
// number.mac
// このマクロはN88basicソースファイルの行番号を作成するものです。
// 2000.08.19 by Toru Yumoto

 $str1 = input("最初の行番号を入力してください。","10000");
 $str2 = input("行番号の間隔を入力してください。","10");

 #Int1 = val($str1); //行番号初期値
 #Int2 = val($str2); //行番号間隔

// クリップボード書き換え、に変更
// 使用例:(クリップボードの内容を$a[0〜]の配列に取り込む例
// マクロヘルプ を参照しました

beginclipboardread;
#i =0;
$a[#i]=getclipboard;
while($a[#i]!=""){
#i =#i +1;
$a[#i]=getclipboard;
}

 setclipboard "" ;  //ファイルの先頭→クリップボードクリア
#o =0;
while(#i>#o){
#o =#o +1;
 addclipboard str(#Int1)+": "+$a[#o]; //追い番挿入
 #Int1 = #Int1 + #Int2; //指定された間隔を計算
}
 
// クリップボードは 書き換わりました。
 endmacro;  //マクロ終了
-------------------
クリップボード内の改行は \x0A のため、メモ帳はダメだが、
一般の入力欄やエディタでは受け付けられる。

[ ]
RE:18042 行番号付きコピーNo.18047
秀丸担当 さん 04/09/24 14:45
 

行番号付きでコピーするのは、マクロを作成するのがいいです。
たけのこさんやENCODINGSHIFTJISさんの示されているようなマクロを参考にする
といいと思います。

[ ]