検索結果を順次文字配列に取り込むNo.03031
hiro さん 02/03/08 05:39
 
初めまして。初めて投稿いたします。
検索結果をその都度、配列に取り込み。そのあとで、指定した場所に順番に
insertしたいのですが、うまくいきません。色々な方法を試してみたのですが、うま
くいってもすべての行を取り込み、全選択コピーをしたのと同じ結果になることもあ
りました。検索には正規表現を使っています。
長くなるので一部分ですが、次のような感じです。
gofileend;
searchup "2002-..-..", regular;
#ex = selendx;
#ey = selendy;
#tx = seltopx;
#ty = seltopy;
golinetop2;
call sub1 #tx,#ty,#ex,#ey;
#w = #w + 1;
while (result) findup;

sub1:
golinetop2;

$q[#w] = gettext(##1,##2,##3,##3);
escape;

END:

ところで、一回ごとの検索時におけるカーソル位置はどうなっているのでしょうか?
 論理行頭とは改行直前の先頭文字のことでしょうか? 試行錯誤しながら他の人の
マクロを分析して調べたのですが、どうも似たようなものはないようです。マクロを
作り始めて一週間程度しか経っていないので、根本的なミスもあるかと思いますが、
宜しくお願いします。

[ ]
RE:03031 検索結果を順次文字配列に取り込No.03032
山紫水明 さん 02/03/08 08:20
 
 hiroさん,こんにちは。

》検索結果をその都度、配列に取り込み。そのあとで、指定した場所に順番に
》insertしたいのですが、うまくいきません。

 次のようにして試してみてください。

//--------------------------------------------------------//
gofileend;
while( 1 ) {
    searchup "2002-..-..", regular;
    if( !result ) break;
    $q[#w] = gettext( seltopx, seltopy, selendx, selendy );
//  escape;//必要であれば
    #w = #w + 1;
}
menuarray $q, #w;//確認のため
//--------------------------------------------------------//

》ところで、一回ごとの検索時におけるカーソル位置はどうなっているのでしょう
か?

 この場合は,検索でヒットした文字列の先頭にあります。

》 論理行頭とは改行直前の先頭文字のことでしょうか? 

 改行直後の先頭文字です。
    ~~
     では, (^^)/~
                                        山紫水明

[ ]
RE:03032 検索結果を順次文字配列に取り込No.03033
FKU さん 02/03/08 10:07
 
FKUです。

> 》ところで、一回ごとの検索時におけるカーソル位置はどうなっているのでしょう
> か?

検索結果の取得ということで、当方もご教示いただきたいことがありますので、
ここに便乗させていただきますが、

”hidesoft.4:02916| 検索でヒットした文字列の取得”より引用
> 秀丸エディタの『動作環境→検索での表示』を『範囲選択』にして置けば、
> seltopx等を利用して文字列を取得できますが、『点滅表示』の場合は不可能です。
> 『点滅表示』の場合にヒットした文字列を取得する方法はあるでしょうか。
>
> 検索後のカーソル位置を取得すればヒットした文字列の先頭位置は取得できますが、
> 末尾を取得する簡単な方法があればご教示ください。
について、なにか妙案はありますでしょうか。
>山紫水明様

まさに、便乗で申し訳ないです。
>hiro様

『範囲選択』にしている方の割合が高いようですね。
それとも、マクロ利用の際にオプションを書き換えるとかでしょうか。

[ ]
RE:03033 検索結果を順次文字配列に取り込No.03034
山紫水明 さん 02/03/08 13:29
 
 FKUさん,こんにちは。

》> 検索後のカーソル位置を取得すればヒットした文字列の先頭位置は取得でき
》> ますが、末尾を取得する簡単な方法があればご教示ください。
》について、なにか妙案はありますでしょうか。

 妙案がもしかしたらあるかも知れませんが,私は
gettext( seltopx, seltopy, selendx, selendy )
を使ったマクロを公開するときは,点滅表示の場合は一時的に範囲選択に書きか
える処理を入れています。

》『範囲選択』にしている方の割合が高いようですね。

 わたし自身はそうですが,割合となると・・・??

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

[ ]
RE:03031 検索結果を順次文字配列に取り込No.03035
hiro さん 02/03/08 21:38
 
>初めまして。初めて投稿いたします。
>検索結果をその都度、配列に取り込み。そのあとで、指定した場所に順番に
>insertしたいのですが、うまくいきません。色々な方法を試してみたのですが、う
>まくいってもすべての行を取り込み、全選択コピーをしたのと同じ結果になること
>もありました。検索には正規表現を使っています。

hiroです。

皆様ありがとうございます。早速試させていただき、その上で結果報告をさせていた
だきたいと思います。ちなみにこのマクロはオーガナイザー 97からテキストで保存
したファイルを見やすいものに、整形するものです。今のところソフト独自の不要
コードを削除し、ある程度の整形をするところまで成功しており、今回の部分は、日
付ごとに改行するためのものです。そのあと日付も全角の月日に変えてみたいと考え
ております。

(元のファイル)
"シークレット","カテゴリ","開始日","終了日","内容","コストコード","顧客コード","保留"
0,"","2002-01-03 21:30:00.000000000","2002-01-03 21:30:00.000000000","秀丸マ
クロは,「マクロ登録」でファイルを登録して,それを呼び出す形で使います。マク
ロは拡張子がMACのファイルでなければいけません。マクロファイルは秀丸本体(HID
EMARU.EXE)と同じフォルダに置いておく必要があります。または,[その他]→[動作
環境]→[パス]→[環境]でマクロファイル用のフォルダを指定すれば、指定したフォ
ルダにマクロファイルを置くことができます。","","",0
0,"","2002-01-04 20:30:00.000000000","2002-01-04 21:30:00.000000000","秀丸マ
クロは,各種の動作を実行する文と,流れを制御する制御文からなります。文はセミ
コロンで区切らなければいけません。セミコロンが無い場合は,「セミコロンが無
い」とは別のエラーが出るので注意してください。","","",0

(今のところ完成している部分。)
002-01-03     (21:30)
 秀丸マクロは,「マクロ登録」でファイルを登録して,それを呼び出す形で使いま
す。マクロは拡張子がMACのファイルでなければいけません。マクロファイルは秀丸
本体(HIDEMARU.EXE)と同じフォルダに置いておく必要があります。または,[その
他]→[動作環境]→[パス]→[環境]でマクロファイル用のフォルダを指定すれば、指
定したフォルダにマクロファイルを置くことができます。
2002-01-04     (20:30)
 秀丸マクロは,「マクロ登録」でファイルを登録して,それを呼び出す形で使いま
す。マクロは拡張子がMACのファイルでなければいけません。マクロファイルは秀丸
本体(HIDEMARU.EXE)と同じフォルダに置いておく必要があります。または,[その
他]→[動作環境]→[パス]→[環境]でマクロファイル用のフォルダを指定すれば、指
定したフォルダにマクロファイルを置くことができます。
 
 オーガナイザー2000であれば、もっと実用性もあると思いますが、こちら方は
使ったことがないのでわかりません。なお、秀丸エディタの文字数を80にしておけ
ば、そのままでも改行の乱れはありません。ご希望の方があればソースを公開します
ので、手直しして使ってみてください。

[ ]
RE:03035 検索結果を順次文字配列に取り込No.03036
山紫水明 さん 02/03/08 22:09
 
 hiroさん,こんばんは。

 前回のコメントで書き忘れましたが,「動作環境」→「検索結果での表示」を
「範囲選択」にしておく必要があります。
 もし,設定が「点滅表示」であれば,マクロで一時的に「範囲選択」に変え,
終了後は元に戻すこともできます。
 もしかしたら,杞憂だったかもしれませんが。

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

[ ]
RE:03036 検索結果を順次文字配列に取り込No.03037
hiro さん 02/03/08 23:33
 
hiroです。


> もしかしたら,杞憂だったかもしれませんが。
>
>     では, (^^)/~
>                                        山紫水明
お気遣いいただき恐縮です。

ご教示いただいたようにやってみたところ、一発でうまくいきました。
山紫水明さん本当にありがとうございました。
これは様々な形で応用できると思ます。行き詰まりが打開でき本当に助かりました。


>まさに、便乗で申し訳ないです。
>hiro様

FKU様、便乗は私も勉強になるので大歓迎です。

[ ]