• 締切済み

【秀丸マクロ】IFの使い方

秀丸マクロでの、IFの使い方が分かりません…。 秀丸でCSVデータの編集をしています。 "文字列1","文字列2","文字列3","文字列4","文字列5", のうち、文字列4だけを見て、条件に合致するものは『行ごと』削除したいんです。 調べて調べて、やっとこ↓までは書いたのですが、 gofiletop; while( code != eof ){ searchdown "^\"((.*?)\",){4}\"(.*?)\"(?\\1)"; deleteline; } IFがないので、これではぜーんぶ消えてしまいます。(苦笑) IFをどういった方法で追加すればよいのか、教えてください。 よろしくお願いします。

みんなの回答

  • ShowZ
  • ベストアンサー率31% (67/210)
回答No.1

searchdown のあとの result を見て 成功していたら 行削除 失敗 していたら ブレーク という処理が必要だと思います。 秀丸でしたら マクロ作者 用の会議室がありますので、そちらをのぞいてみてはどうですか?(^^

参考URL:
http://www.maruo.co.jp/hidesoft/
furfur
質問者

お礼

あー、だめです。結局出来ませんでした。 教えて頂いたアドレスから、サポート受けることにします。 ありがとうございました。

furfur
質問者

補足

resultとbreakですか、、、 えっと、、文字列4の内容が数字の0の場合に行削除、とすると、 gofiletop; while( code != eof ){  searchdown "^\"((.*?)\",){4}\"(.*?)\"(?\\2)"; //ちょっと変更   if(result == 0){    deleteline;   }else{    break;   } } …文法エラー…どこが悪いのやら、さっぱり分かりません。 はぁ…、もちょっと頑張ってみます。 ※教えて頂いたページは確認しました。でも期待するものはなかったです。残念。

関連するQ&A

  • 秀丸マクロについて

    秀丸マクロ初心者です。 OS:XP(SP3)、秀丸:7.08を使っています。 テキストファイルのデータをファイルの先頭から一行ずつ 文字列型変数に読み込んでメッセージをだそうとしていますが うまくいきません。 コードのどこが悪いのか、もしくはもっと簡単にできるやり方などあれば 教えて頂けないでしょうか。 ■コード gofiletop; while (code != eof) { golineend; #end = x; golinetop; $str = gettext(x,y,#end,0); message $str; down; } endmacro;

  • 秀丸マクロについて質問です。

    秀丸マクロについて質問です。 秀丸で編集されたテキスト文書の中でabcdefgという文字列がある行を検索し、 その行情報を取得し、その行の隣にある文字列(下記の例では123456)を返す にはどのようにすればよいでしょうか? ご回答よろしくお願いします。 (例) 567行目に以下の文があるとします。 abcdefg,123456,goukaku

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

    秀丸エディタのマクロを使って以下の処理を行おうとしました。 1.検索した文字の一行下の行をコピーし、   そのコピーした行末にコピーしたデータを貼り付ける。 2.最初に検索した文字に該当する次の文字の一行下の行をコピーし、   そのコピーした行末にコピーしたデータを貼り付ける。   (繰り返し。) 3.文末(EOF)まで2.の処理を繰り返す。 以下のマクロを作ってみました。 while(code != eof){ setcompatiblemode 15; searchdown "検索文字" , hilight; down 1; copyline; paste; finddown; すると、2.の処理まで正常に実行されるのですが、 検索文字がなくなった時点で2の処理がストップされる事がなく、 それ以降の行のすべてが文末(EOF)まで、コピー&ペーストの処理が 繰り返されます。 例:______________________________________________________ (元の文) ○○ ××× △△ ■■■ ○○ □□□□ ☆☆ (検索する文字) ○○ (マクロ実行後の文) ○○ ××× ××× △△ ■■■ ○○ □□□□ □□□□ ☆☆ ☆☆ ______________________________________________________ 上記の例でいうと、(元の文)の☆☆の部分が、(マクロ実行後の文)で ☆☆ ☆☆ となってしまってます。 この部分を ☆☆ のままにしたいのです。 マクロをどのように組めば実現できるのでしょうか。 よろしくお願いします。

  • 秀丸のマクロについて

    すみません。。検索してもなかなか見つからないので詳しいかたどうぞ教えてくださいませんでしょうか(/_;)?? 秀丸のマクロで下記のようなHTMLの編集をしたいのですが 「◎◎◎◎◎」部分はそれぞれ異なる文字列が入ります。 マクロ上「◎◎◎◎◎」には正規表現でなんと入れればいいのでしょうか?? ------------------------------------------------------------ question "変換しますかっ?"; if(result ==yes ){ replaceallfast "<span class=\"★\"><strong>◎◎◎◎◎</strong></span><br>" , "<p class=\"★\"><strong>◎◎◎◎◎</strong></p>"; message "変換しました。"; } ------------------------------------------------------------ どうぞよろしくお願いいたします(T_T)

  • 秀丸のマクロ

    教えて下さい。 Solarisの資源を取得したテキストファイルがあります(iostat、sar、vmstat)。 エクセルでグラフ化したいのですが、コンマが挿入されていないため綺麗に表示できません。 文字列と文字列の間のスペース(n個)はカットし、コンマを一つ入れるように秀丸で編集したい場合、どのようにマクロを作成すればよいか教えて下さい。 例) <生データ> tty sd0 sd1 tin tout kps tps serv kps tps serv kps 3 1 461 19 19 460 18 19 0 0 <マクロ実行後> tty,sd0,sd1 tin,tout,kps,tps,serv,kps,tps,serv,kps 3,1,461,19,19,460,18,19,0 宜しくお願いします。

  • 秀丸エディタのマクロ挿入系について

    こんばんわ 今回は秀丸エディタのマクロ機能についてです。 下記の作業に秀丸エディタのマクロ機能を駆使したいのです。 今、入手したいマクロは文字列を検索して その文字列の後に文字を挿入するといったものです。 例を出すとXMLファイルにて <url> <loc>URL</loc> ←「検索」 [<mobile:mobile/>]←をここに挿入したいのです。 <priority>1.00</priority> <lastmod>1970-01-01T00:00:00+00:00</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>URL</loc> <mobile:mobile/> <priority>0.80</priority> <lastmod>1970-01-01T00:00:00+00:00</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>URL</loc><mobile:mobile/> <priority>0.80</priority> <lastmod>1970-01-01T00:00:00+00:00</lastmod> <changefreq>daily</changefreq> </url> <url> ・ ・ ・という感じに・・・ この処理をマクロにて何行も行いたいのです。 この処理が数行でしたらいいのですが 何分、数がとても多くて^^; そんなわけで、この機能の秀丸マクロを知っていたら ご回答いただければ幸いです。

  • 秀丸のマクロ

    マクロ全くの初心者です。 以下の秀丸のマクロを次のように変更したいです。 1連番の数字を記号$kの前ではなく後ろに。 2()は不要 3$sに入力した記号が出てきたら連番数字をはじめの1から連番にし、 これを繰り返す。 宜しくお願いいたします。 //----------------------------------------------// //Macro1 $k = input("記号は?"); $s = input("数字を1に戻す記号は?"); gofiletop; #i = 1; while( 1 ) { searchdown $k; if(!result) break; insert "("+str(#i)+")"; #i = #i + 1; } endmacro; //----------------------------------------------//

  • 秀丸を使ったマクロでなんとかならないでしょうか。。

    秀丸を使ったマクロでなんとかならないでしょうか。。 次のような文が書かれたテキストから、 ==== ここから ==== 日曜 犬 月曜 図書館 火曜 散髪 ==== ここまで ==== 次のような文に書き換えたいと思ってます。 ==== ここから ==== 日曜 犬 日曜は犬を、 散歩に連れて行く。 月曜 図書館 月曜は図書館で、 本を読む。 火曜 散髪 火曜は散髪にいく。 ==== ここまで ==== “日曜”を(キーワードA)とすると、“日曜”の次の行の任意の文字列(ここでは犬)を、 次のように代入した文章を(キーワードA)の2行下に追加で書き出すようにしたいんです。 (キーワードA)は(犬)を、 散歩に連れて行く。 上の文章は、仮に(文章A)としてマクロのどこかに記載しないと いけないとかと思いますが。。 同様に、“月曜”を(キーワードB)とすると、図書館は(キーワードb)、 次の文章は(文章B)として考えてます。 そうすると、テキストファイルの例だと構成要素は、 ==== ここから ==== (キーワードA) (キーワードa) (キーワードB) (キーワードb)    ・    ・ ==== ここまで ==== となる感じです。

  • 秀丸のマクロでいちいち表示を更新しないためには

    秀丸についてお教えください。 テキストファイルに、改行なく、文字がべたべたべた・・・と、 何万文字も入っています。 1行1文字にしたいので、右矢印キーとエンターキーを繰り返したいと思っています。 (なぜ置換を使わないのか、の説明は省きます。) マクロを使って、下記のような感じにすればいいと思っています。 #a = 100000; while(#a > 0){ right; insertreturn; #a = #a -1; } ですが、これを実行すると、いちいち表示を更新してくるため、遅いです。 私としては、「全置換」の「一気」の「スピードアップ」みたいに、 サササーッ という具合にやりたいのですが、どうすればよいでしょうか。 また、ついでに聞きますが、 上記のマクロで、100000のように数を指定しないで、「ファイルの終わりまで」みたいにやるにはどうすればよいでしょうか。

  • 秀丸での正規表現

     秀丸エディタVersion 7.11、HMJRE.DLL V1.92 を使用しています。  下記上のような4行のテキストファイルから、数字以外で始まる行を空行に置換しようと思い、検索文字列を「^[^0-9].*」、置換文字列を「」(なし)に設定したのですが、3行目のx だけからなる行は削除されませんでした(下記下のようになりました。このとき、カーソルは変換後の2行目の一番左のx の右側にあります)。 置換前 >11111 > >xxxxx >[EOF] 置換後 >11111 >xxxxx カーソルは左端のx の右側 >[EOF]  11111 とxxxxx の間にもう1行空行を入れると、所望の動作となります。  正規表現の指定が間違っているのでしょうか。

専門家に質問してみよう