「夫を成功」へ導く妻の秘訣 座談会

秀丸マクロについて教えてください。
下記の表の
<td>
<!-- 商品名 -->
//ここは毎回違う値が入ります。
</td>
の部分だけを削除したいです。
<!-- 商品名 -->
という値を検索して、その二行上から、下一行までをdeletelineなどで削除するというような記述をしようと、サイトや秀丸ヘルプを見たのですが、初心者過ぎて全く出来ませんでした。
どなたかマクロを作成していただけませんでしょうか。
よろしくお願いいたします。
****************************************
</tr>
<!-- Data -->

<td>
<!-- 価格 -->
\100

</td>
<td>
<!-- 商品名 -->
abc
</td>
<td>
<!-- 産地 -->
def
</td>

<td>
<!-- 価格 -->
\200

</td>
<td>
<!-- 商品名 -->
ghi
</td>

<td>
<!-- 産地 -->
jkl
</td>

このQ&Aに関連する最新のQ&A

A 回答 (1件)

マクロを丸々作ってくれという話なら、丸投げ禁止のここよりは、


秀丸のサポートページにマクロ専用の会議室もありますから
そっちで訊いてみてはどうですか?

ここよりは名乗りをあげる人がいると思いますよ。

つーか

・検索して(searchdown)
・二行上にいって (up 2)
・4行削除(deleteline 4回)

でひとつのエントリを処理できるので
後はこれを繰り返すだけなんですけど。
    • good
    • 0
この回答へのお礼

回答どうもありがとうございました。
お陰様で以下のマクロを作成することが出来ました。
ルールに反する質問をしてすみませんでした。

while( code != eof ){
searchdown "商品名"; //文字列の検索
up 2;
deleteline;
deleteline;
deleteline;
deleteline;
}

お礼日時:2007/09/06 16:49

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q秀丸マクロ =検索文字を文末まで置換=

秀丸エディタのマクロを使って以下の処理を行おうとしました。

1.検索した文字の一行下の行をコピーし、
  そのコピーした行末にコピーしたデータを貼り付ける。
2.最初に検索した文字に該当する次の文字の一行下の行をコピーし、
  そのコピーした行末にコピーしたデータを貼り付ける。
  (繰り返し。)
3.文末(EOF)まで2.の処理を繰り返す。

以下のマクロを作ってみました。

while(code != eof){
setcompatiblemode 15;
searchdown "検索文字" , hilight;
down 1;
copyline;
paste;
finddown;

すると、2.の処理まで正常に実行されるのですが、
検索文字がなくなった時点で2の処理がストップされる事がなく、
それ以降の行のすべてが文末(EOF)まで、コピー&ペーストの処理が
繰り返されます。

例:______________________________________________________
(元の文)
○○
×××
△△
■■■
○○
□□□□
☆☆

(検索する文字)
○○

(マクロ実行後の文)
○○
×××
×××
△△
■■■
○○
□□□□
□□□□
☆☆
☆☆
______________________________________________________

上記の例でいうと、(元の文)の☆☆の部分が、(マクロ実行後の文)で
☆☆
☆☆
となってしまってます。
この部分を
☆☆
のままにしたいのです。

マクロをどのように組めば実現できるのでしょうか。
よろしくお願いします。

秀丸エディタのマクロを使って以下の処理を行おうとしました。

1.検索した文字の一行下の行をコピーし、
  そのコピーした行末にコピーしたデータを貼り付ける。
2.最初に検索した文字に該当する次の文字の一行下の行をコピーし、
  そのコピーした行末にコピーしたデータを貼り付ける。
  (繰り返し。)
3.文末(EOF)まで2.の処理を繰り返す。

以下のマクロを作ってみました。

while(code != eof){
setcompatiblemode 15;
searchdown "検索文字" , hilight;
down 1;
copyline;...続きを読む

Aベストアンサー

以下のようにしてください
----------------------------------------------------
setcompatiblemode 15;
//ファイルの先頭へ移動(カーソルがどこにあっても良いようにするため)
gofiletop
searchdown "検索文字" , hilight;
while(1){
if (result == 0) { break;}
//行頭へ移動(しないと正しくコピーできない)
golinetop;
down 1;
copyline;
paste;
finddown;
}
------------------------------------
不明点は、聞いてください。動作確認済みです。

Q秀丸で指定した文字が入っている行以外を削除

秀丸で指定した文字が入っている行以外を
削除する置換方法を探しております。
ご存知の方お教えください

Aベストアンサー

例えば指定した文字がaだったとします。
検索ダイアログで検索欄に
^[^a]+\n
を書いて、置換欄を空欄にして、正規表現のチェックをONにして、全置換などを押します。

これでaを含まない行がすべて削除されます。

Q秀丸マクロについて

秀丸マクロ初心者です。
OS:XP(SP3)、秀丸:7.08を使っています。

テキストファイルのデータをファイルの先頭から一行ずつ
文字列型変数に読み込んでメッセージをだそうとしていますが
うまくいきません。

コードのどこが悪いのか、もしくはもっと簡単にできるやり方などあれば
教えて頂けないでしょうか。

■コード
gofiletop;
while (code != eof) {
golineend;
#end = x;
golinetop;
$str = gettext(x,y,#end,0);
message $str;
down;
}
endmacro;

Aベストアンサー

>$str = gettext(x,y,#end,0);

$str = gettext(x,y,#end,y);
ではないですか?

私なら…
golineend;
$str = gettext(0,y,x,y);
のあと…
right;
または、
moveto 0,y+1;
ですかね。
golinetop;
down;
でもいいかも知れませんが。

最終行が改行で終わっていないと、
while (code != eof)
が正しく動作しないかも知れない点にはご注意を。
# 私なら最初にgofileend;して最終行を取得しておきます。

Q秀丸マクロで、あらかじめ選択した範囲にのみ処理を適用するには

秀丸マクロで、あらかじめ選択した範囲にのみ処理を適用するには
どのように書けばよいのでしょうか?

具体的には

replaceall "あああ" , "いいい";

のような置換処理を、
現在開いているファイルの選択範囲にのみ適用したいと考えています。

意味不明でしたら加筆修正しますのでよろしくお願いします。

Aベストアンサー

置換処理の最後のパラメータに「,inselect」を追加すれば良いハズです。

Q秀丸エディタ タブをカンマに置換したい

秀丸エディタで、タブをカンマに置換したいのですが可能でしょうか。


ちなみに、「 \t 」 で検索しても、ヒットしません。
どなたかわかる方がいらっしゃいましたら、
ご回答よろしくお願いします。

Aベストアンサー

検索のオプションで「正規表現」にチェックを入れてありますか?

Qbatファイルを秀丸のマクロで実行するには?

Win2kで秀丸エディタ4.06を使用しています。

e:\hoge\foo\test.bat
をマクロ(bat.mac)で実行できるようにしたいのですが

bat.macにどのように書けばいいのでしょうか?

Aベストアンサー

run "cmd.exe /c e:\\hoge\\foo\\test.bat";
  または
runsync "cmd.exe /c e:\\hoge\\foo\\test.bat";

のようにすれば、いいのではないでしょうか?

私の環境は秀丸 4.14 ですが、\ のところを \\ のようにしないとダメみたいです。

run と runsync の違いは、秀丸のマクロヘルプを見て下さい。

Q秀丸マクロの作成方法

あるディレクトリに巨大なログが大量にあります。
このファイルを一つずつオープンし、中からある文字列「abcde」のある行を抜き出し、該当行を一つのファイルに出力した上で、そのファイルから文字列「1」のある行をファイルに出力したいとおもいます。
マクロの書き方を教えてもらえませんでしょうか。
宜しくお願いします。


1.log
1213132abcde12343434243
31313144352421432424234
343333333abcde333333333
2.log
foaoaosooaoaoaoaoaoaoao
32132132abcde3432432432
42423432432424325424233

1213132abcde12343434243
343333333abcde333333333
32132132abcde3432432432

1213132abcde12343434243
32132132abcde3432432432

Aベストアンサー

#2, #3, #4 です。

■これは、回答ではなく中間報告とお詫びです。

“log01.txt”、“log02.txt”を、各々10万行を超える内容として検証し
てみました。
その結果、「応答が帰ってこない」旨のエラー・メッセージが表示され、
マクロが正常に動作しません。

「ファイル名が有効ではありません。
 動作環境のワイルドカードの指定が正しいか確認してください。」

とは異なるエラーですが、「巨大なログが大量にある」状態では使用しない
でください。
詳しく調査する時間がないので、改善策や原因を提示できません。最初から
「巨大なログが大量にある」と仰っているのに、そのような検証もせず投稿
したことをお詫びします。

因みに、千数百行のファイルが10個程度なら動作することを確認しました。

中途半端な回答をしたことに責任を感じております。
時間がかかることを暇ないなら、次の回答をお待ちください。
そうでないなら、私の発言を全てお忘れください。

---------------------------------------------------------------
※「Rubyを利用する」と言うのは、駄目かな~

-- pickup_log.rb --

#!ruby -Ks

fword = /11025490.*Single Step Transfer|Single Step Transfer.*11025490/

Dir.glob("*.txt"){|file|
open(file){|f|
while line = f.gets
print line if fword =~ line
end
}
}

コマンドプロンプトから

C:\temp2>ruby pickup_log.rb > 出力.txt

#2, #3, #4 です。

■これは、回答ではなく中間報告とお詫びです。

“log01.txt”、“log02.txt”を、各々10万行を超える内容として検証し
てみました。
その結果、「応答が帰ってこない」旨のエラー・メッセージが表示され、
マクロが正常に動作しません。

「ファイル名が有効ではありません。
 動作環境のワイルドカードの指定が正しいか確認してください。」

とは異なるエラーですが、「巨大なログが大量にある」状態では使用しない
でください。
詳しく調査する時間がないので、改善策や原因...続きを読む

Q秀丸:あらかじめ設定した複数のワードを全て検出したい

秀丸のマクロについての質問です。
こんな秀丸のマクロってないでしょうか?
いろいろ検索をかけてみたものの、見つかりませんでした。

・文中に予め設定しておいた複数の特定ワードが含まれていないか、一括で検出したい
 (例えば、あああ・いいい・ううう が含まれていないかを検索)
・検出するだけで、変換機能はなくていい
・検出する対象ファイルは、現在開いているファイルのみでいい

もしご存知の方がいらっしゃったら、ぜひ教えて下さい。
よろしくお願い致します。

Aベストアンサー

秀丸のメニューの検索からgrepの実行があります。
選択すると検索するファイルを選択するリストボックスがあります。
そこで現在の内容を選べば、質問でいう検出するファイル対象は、
現在開いているファイルと同じことになります。

>一つのファイルから複数のワードを洗い出したいときは、拡張マクロ(?)などが必要なんでしょうか?

必要じゃないですね。
ほぼ、正規表現で事足りると思いますよ。

例を出しておきます。
あああ
いいい
ううう
えええ
おおお
上記が入力されているファイルで「あああ」と「いいい」をgrep機能を
使用して検索する場合、
検索する文字列に「あああ|いいい」
検索するファイルに「(現在の内容)」
正規表現にチェックをつけてOKをクリックすると

(1): あああ
(2): いいい

という結果が返ってきます。

ちなみに、この正規表現は検索でも置換でも使用できます。
正規表現を駆使すればかなり使用範囲が広がるので、是非活用してみて
ください。

Qwindowsでテキストファイルの比較をファイル出力したい

windowsでテキストファイルを比較するユーティリティーとして、windiffがありますが、画面表示しか出来ないと思います。
二つのテキストファイルを比較して、その結果(出来れば相違点のみ)を
ファイル出力したいのですが、良いツールまたは、良い方法があれば教えて下さい。
宜しく、お願いします。

Aベストアンサー

出力結果のフォーマットはwindiffとは違いますが、
参考URLのdfというソフトはどうでしょうか。

相違点のファイル出力もできますし、使い勝手もいいと思います。

参考URL:http://www.vector.co.jp/soft/win95/util/se113286.html

Q秀丸マクロで、一部文字列を変換後クリップボードコピーしたい

秀丸マクロで、一部文字列を変換後クリップボードコピーしたい

秀丸マクロで、setclipboard filename;とすると、
現在開いているファイルのフルパスを取得してクリップボードにコピーすることができますが、
この際に\を/に変換して、クリップボードコピーしたいと思いますがうまくいきません。
どうすればよいのでしょうか。。

例)

filenameで取得した
c:\documents and settings\user\my documents\sample.txt
というパスを
c:/documents and settings/user/my documents/sample.txt
のようにしてから、クリップボードコピーしたい。

意味不明でしたら加筆修正しますのでよろしくお願いします。

Aベストアンサー

置換できる関数が見つからなかったのでこんな感じで。

$s = filename;
#a = strstr( $s, "\\" );
while(#a >= 0){
$s1 = leftstr( $s, #a );
$s2 = rightstr( $s, strlen($s)-#a-1 );
$s = $s1 + "/" + $s2;
#a = strstr( $s, "\\" );
}
setclipboard $s;


人気Q&Aランキング