copylineで取得した複数の文字列を連結さNo.05566
ポワン さん 07/06/05 02:05
 
こんにちはお世話になります。
数個の検索文字列をcopylineでそれぞれ取得してそれをファイルの初めに一度に表示
するとそれぞれが改行されて表示されてしまいますが、これを取得した行の最後の文
字に連結して表示する方法はないでしょうか?(最後の文字以降の空白を詰めたいの
です)
例えば、「か」と「さ」を検索文字列に指定した場合、×のようになってしまいます
が○のようにしたいのです(できれば連結するとき半角開けたいです)

あと表示するとき検索文字列を削除して表示できればなおありがたいです。

宜しくお願いいたします。
----
あいうえお
さしすせそ
かきくけこ
-----
下記のマクロ
↓×
-----
かきくけこ
さしすせそ

あいうえお
さしすせそ
かきくけこ
----

----
あいうえお
さしすせそ
かきくけこ
-----
↓○
-----
かきくけこ さしすせそ

あいうえお
さしすせそ
かきくけこ
----

//----------------------------------------------//
//Macro1
$k1= "か";
$k2= "さ";
gofiletop;
     searchdown2 $k1, word;
    if( !result ) break;
    copyline;
beginclipboardread;
$a = getclipboard;
gofileend;

gofiletop;
     searchdown2 $k2, word;
    if( !result ) break;
    copyline;
beginclipboardread;
$b = getclipboard;
gofileend;

gofiletop;
insert $a+$b;
gofileend;
endmacro;
//Macro1end
//----------------------------------------------//

[ ]
RE:05566 copylineで取得した複数の文字列No.05567
ENCODINGSHIFTJIS さん 07/06/05 10:42
 
操作の組み方の 考え方はいろいろあります。
gofiletop; してますから、そこで連結もできます
gofiletop; golineend2; paste;
$a+$b; ではなくて。

$k1を検索した直後に copyline; ではなく
$k1の直後から,さらに行末の空白類直前まで検索(選択)が出来ます。

(?<=か) を検索、選択開始、[ ]*$ を検索、copy

[ ]
RE:05567 copylineで取得した複数の文字列No.05568
ポワン さん 07/06/05 15:48
 
ENCODINGSHIFTJIS さんありがとうございます。
できました。


//----------------------------------------------//
//Macro1
gofiletop;
searchdown2  "(?<=か)",regular;
beginsel;
searchdown2  "[ ]*$",regular;
if( !result ) break;
copy;
gofileend;
gofiletop; golineend2; paste;

gofiletop;
searchdown2  "(?<=さ)",regular;
beginsel;
searchdown2  "[ ]*$",regular;
if( !result ) break;
copy;
gofileend;
gofiletop; golineend2; insert" ";paste;

endmacro;
//Macro1end

[ ]
RE:05568 copylineで取得した複数の文字列No.05569
K'zawa さん 07/06/05 17:12
 
ポワンさん、こんにちは。
K'zawa/ユーザーです。

>if( !result ) break;

whileがないので検索に失敗したときエラーになりますが…。

[ ]
RE:05569 copylineで取得した複数の文字列No.05570
ポワン さん 07/06/05 18:26
 
こんばんは、K'zawaさん。
ご指摘のようにマクロ実行で検索できないとエラーになりますね。
if( !result ) break;
を削除してみました。
これで検索できなくてもエラーでないみたいですね。
ありがとうございました。
//----------------------------------------------//
//Macro1
gofiletop;
searchdown2  "(?<=か)",regular;
beginsel;
searchdown2  "[ ]*$",regular;
copy;
gofileend;
gofiletop; golineend2; paste;

gofiletop;
searchdown2  "(?<=さ)",regular;
beginsel;
searchdown2  "[ ]*$",regular;
copy;
gofileend;
gofiletop; golineend2; insert" ";paste;

endmacro;
//Macro1end

[ ]