[CR+LF]を[LF]に纏めて変更したい。No.12517
yamasan さん 02/07/23 17:16
 
yamasanと申します。お願いします。
一つのフォルダにある、[SHIFT-JIS] [CR+LF]で保存されている
複数のファイルを纏めて、
[SHIFT-JIS] [LF]に変更して、同じファイル名で、保存したい場合は、
どのような方法があるのでしょう。お教えください。
マクロを考えてますが、何時までたっても、マクロを作ることが出来ません。
どうぞ、お願いします。m(_ _)m

[ ]
RE:12517 [CR+LF]を[LF]に纏めて変更したNo.12523
秀丸担当 さん 02/07/23 18:48
 
>一つのフォルダにある、[SHIFT-JIS] [CR+LF]で保存されている
>複数のファイルを纏めて、
>[SHIFT-JIS] [LF]に変更して、同じファイル名で、保存したい場合は、
>どのような方法があるのでしょう。お教えください。

マクロを作れば一括処理できると思いますが、LFで保存する場合は、
キー割り当てで「上書き保存(改行=LF)」を使えばダイアログを出さ
なくても同名で保存できるので、あまり大量にファイルが無い場合
は簡単にできると思います。

[ ]
RE:12517 [CR+LF]を[LF]に纏めて変更したNo.12524
ひろ さん 02/07/23 19:10
 
 yamasan さん今日は、ひろです。
> 一つのフォルダにある、[SHIFT-JIS] [CR+LF]で保存されている
> 複数のファイルを纏めて、
> [SHIFT-JIS] [LF]に変更して、同じファイル名で、保存したい場合は、
 やはりマクロになると思います。手順としては次の通りです。
(1)フォルダ指定
(2)検索文字列「[.\n]」で grep を行いファイル・リストを作成
(3)リストのファイルを順に名前をつけて保存で「LF」に変換

 これが開いているウィンドウに対してとなると、末尾のような簡単なマクロ
で済みます。

 この手の特定のフォルダ内や開いている全てのファイルに、作成済みの別
のマクロを実行するマクロはどの程度の需要があるのでしょう?
 ##手元には有るが、ドキュメントを書くのが面倒で、公開していない(^^;。
//開いている全てのファイルを Shift-JIS, LF で保存
##i = 0;
while( ##i < hidemarucount ){
  if( filename != "" )saveas filename2,sjis,lf;
  else{
    $file = input("ファイル名は?");
    if($file == "" )endmacroall;
    saveas $file, sjis,lf;
  }
  nexthidemaruicon;
  ##i = ##i + 1;
}

[ ]
RE:12517 [CR+LF]を[LF]に纏めて変更したNo.12525
小西 さん 02/07/23 19:13
 
小西です

>一つのフォルダにある、[SHIFT-JIS] [CR+LF]で保存されている
>複数のファイルを纏めて、
>[SHIFT-JIS] [LF]に変更して、同じファイル名で、保存したい場合は、
>どのような方法があるのでしょう。お教えください。
>マクロを考えてますが、何時までたっても、マクロを作ることが出来ません。
私は、Rubyでサブフォルダも再帰的に処理してくれるやつを作っています。
ここはRubyのページではないので、掲載は控えますが、ほしければあげますよ。

[ ]
RE:12517 [CR+LF]を[LF]に纏めて変更したNo.12526
白雲斎 さん 02/07/23 20:58
 
 白雲斎 と申します。

>同じファイル名で、保存したい
と言うのが理解できませんが、以下ではどうでしょう。
(厳正な処理(例外等)はしていません。)

// union.mac --------------------------------------------------

$sb = searchbuffer;
#so = searchoption;

Mtop:
menu "*** ファイルの結合 ***",
    "(1) ファイル一覧の所得",
    "(2) 結合";
if (result == 0) endmacro;
else if (result == 1) goto Mtop;
else if (result == 2) {
    $ext = "*" + filetype;
    grep "^", $ext, ".", regular, filelist;
    goto Mend;
}

disabledraw;
replaceallfast "\\([0-9]+\\)$", "", regular;
selectall;
copy;
newfile;
beginclipboardread;
$file = getclipboard;
while ($file != "")
{
    $file = leftstr($file, strlen($file) - 1);
    if ($file == "" || existfile($file) == false) continue;
    insertfile $file;
    $file = getclipboard;
}
gofiletop;
enabledraw;
SAVEAS;
Mend:
setsearch $sb, #so;
endmacro;

//-------------------------------------------------------------


手順:
(1) 対象となるファイル群から、どれか一つを秀丸で開く。
    (対象とする拡張子のファイルを開く事!)
(2) 先のマクロを起動し、「ファイル一覧の所得」 を選択。
(3) 「ファイル名一覧」が作成されるので、結合順序や、不要リストの削除など
    調整する。(上から順に結合される)
(4) 調整し終わった「ファイル名一覧」上で再びマクロを実行し、こんどは
    「結合」 を選択する。
(5) 保存ダイアログが表示されるので、適時保存する。

[ ]
RE:12526 [CR+LF]を[LF]に纏めて変更したNo.12528
白雲斎 さん 02/07/23 21:20
 
 白雲斎 と申します。

先のマクロを訂正します。

>while ($file != "")
>{
>    $file = leftstr($file, strlen($file) - 1);
>    if ($file == "" || existfile($file) == false) continue;
>    insertfile $file;
>    $file = getclipboard;
>}

上記の部分を以下のように訂正してください。
//-------------------------------------------------------------

while ($file != "")
{
    $file = leftstr($file, strlen($file) - 1);
    if ($file == "" || existfile($file) == false) {
        $file = getclipboard;
        continue;
    }
    insertfile $file;
    $file = getclipboard;
}

//-------------------------------------------------------------
失礼しました。

[ ]
RE:12525 [CR+LF]を[LF]に纏めて変更したNo.12530
はてな さん 02/07/24 09:31
 
小西さん、こんにちは、

横からなんなんですが、、、
>私は、Rubyでサブフォルダも再帰的に処理してくれるやつを作っています。
>ここはRubyのページではないので、掲載は控えますが、ほしければあげますよ。

欲しいです。
是非とも、掲載してください。
よろしくお願いします。

[ ]
RE:12526 [CR+LF]を[LF]に纏めて変更したNo.12533
yamasan さん 02/07/24 11:05
 
秀丸担当さん、ひろさん、小西さん、白雲斎さん、ご助言を戴き、
ありがとうございました。m(_ _)m

ひろさん:wrote

 | (1)フォルダ指定
 | (2)検索文字列「[.\n]」で grep を行いファイル・リストを作成
 | (3)リストのファイルを順に名前をつけて保存で「LF」に変換

ありがとうございます。以後の参考にします。
マクロを使ってみました。
これをフォルダ内の全てのファイルに適用するには、
どういう記述を加えるのですか?スイマセン、応用が利かなくて。
上の順番で、マクロを作れません。

 |  この手の特定のフォルダ内や開いている全てのファイルに、作成済みの別
 | のマクロを実行するマクロはどの程度の需要があるのでしょう?

私の考えるところでは、かなりの需要があると存じます。
--------------
小西さん:wrote

 | 私は、Rubyでサブフォルダも再帰的に処理してくれるやつを作っています。
 | ここはRubyのページではないので、掲載は控えますが、ほしければあげますよ。

Rubyというのは、初聞きで、
http://www.ruby-lang.org/ja/ を見ましたんですけど。
お構いなければ…。です。m(_ _)m

--------------
白雲斎さん、union.macをありがとうございました。
ひろさんのご助言から、自分で作りたいのですが、どうにも難しいんです。m(_ _)m

スイマセン、これですと、
 | (4) 調整し終わった「ファイル名一覧」上で再びマクロを実行し、こんどは
 |   「結合」 を選択する。
 | (5) 保存ダイアログが表示されるので、適時保存する。

ということで、
ファイル名を入力して保存せねばならないのですが、
一気に、同じファイル名で、改行コードだけを変更したいのですが、
ファイル名の入力を省略できないでしょうか?

私が、質問の説明も拙かったと思うのですが、
可能でしょうか?結合してみましたが、
その後に、一つ一つファイル名を入力するのが、間違いそうなんです。

[ ]
RE:12533 [CR+LF]を[LF]に纏めて変更したNo.12534
アルビレオ さん 02/07/24 12:32
 
アルビレオです。

白雲斎さんが

>>同じファイル名で、保存したい
>と言うのが理解できませんが、

と書かれているように、「改行コードの変換」という話題で「同じファイル名」と書
くと、
普通に考えれば変換前の元ファイルが存在して、「元ファイルと同じファイル名で保
存したい」
という意味に取ると思います。

>ファイル名を入力して保存せねばならないのですが、
>一気に、同じファイル名で、改行コードだけを変更したいのですが、
>ファイル名の入力を省略できないでしょうか?
>
>私が、質問の説明も拙かったと思うのですが、
>可能でしょうか?結合してみましたが、
>その後に、一つ一つファイル名を入力するのが、間違いそうなんです。

ということは、変換するのは(無題)ファイルなので保存するためにファイル名を入力
する必要がある、
「毎回入力するのが手間なのでマクロで常に『固定のファイル名』で出力したい」と
いう解釈で
合っているでしょうか?

[ ]
RE:12533 [CR+LF]を[LF]に纏めて変更したNo.12535
ひろ さん 02/07/24 14:35
 
 yamasan さん今日は、ひろです。
>  | (2)検索文字列「[.\n]」で grep を行いファイル・リストを作成
 こちらについて補足ですが、正規表現で検索する必要があります。

> これをフォルダ内の全てのファイルに適用するには、
> どういう記述を加えるのですか?スイマセン、応用が利かなくて。
 言葉で書くと、「引用されている部分をマクロ言語で記述する」としか答
えようがないです。

>  |  この手の特定のフォルダ内や開いている全てのファイルに、作成済みの別
>  | のマクロを実行するマクロはどの程度の需要があるのでしょう?
>
> 私の考えるところでは、かなりの需要があると存じます。
 それでは 1 週間を目安に公開します。
 前述の「フォルダ内の全ての〜」のマクロの詳細については、公開後その
ソースを御覧ください。

[ ]
RE:12533 [CR+LF]を[LF]に纏めて変更したNo.12536
白雲斎 さん 02/07/24 16:32
 
 白雲斎 と申します。

勘違いをしていました。
それぞれを改行コードを変えて保存したかったのですね。
以下ではどうでしょう。

// cv_return.mac ----------------------------------------------

if (existfile(basename) == false || updated) endmacro;
$sb = searchbuffer;
#so = searchoption;
#hd = hidemaruhandle(0);
$ext = "*" + filetype;
grep "^", $ext, ".", regular, filelist;
if (linecount == 1) goto Mend;
closehidemaru #hd;
#hd = hidemaruhandle(0);
disabledraw;
replaceallfast "\\([0-9]+\\)$", "", regular;
selectall;
cut;
beginclipboardread;
$file = getclipboard;
while ($file != "")
{
    $file = leftstr($file, strlen($file) - 1);
    if ($file == "" || existfile($file) == false) {
        $file = getclipboard;
        continue;
    }
    insertfile $file;
    saveas $file, sjis, lf;
    selectall;
    delete;
    $file = getclipboard;
}
changename "";
clearupdated;
enabledraw;
Mend:
setsearch $sb, #so;
endmacro;

//-------------------------------------------------------------

前提:(手抜きです)
・マクロ起動用のファイル以外、対象となるファイルが開いていない事。
・対象となるすべてのファイルが書き込みできる事。
・拡張子が付いている事。

手順:
(1) 対象とするファイル群から、どれか一つを秀丸で開く
(2) (1)のファイル上でマクロ実行
以上

[ ]
RE:12536 [CR+LF]を[LF]に纏めて変更したNo.12538
yamasan さん 02/07/24 16:53
 
yamasanです。白雲斎様、ありがとうございました。m(_ _)m

ご注意を頂いた、手順:、前提:を守った上で、
cv_return.macを実行したところ、見事に、ファイルの文字コードが、
フォルダ内のファイル全てについて、変更され保存されておりました。

これで、ものすごい、省力化が可能となりました。
秀丸とマクロって、本当にありがたいと思います。
そして、このサポートフォーラムがあってこそ、マクロの作成できない私にも、
色々なことが可能となっています。

本当に、ありがとうございました。

[ ]
RE:12534 [CR+LF]を[LF]に纏めて変更したNo.12539
yamasan さん 02/07/24 16:56
 
アルビレオさん、こんにちは。お手数をお掛けしました。yamasanです。

アルビレオさんが仰っているとおりなのですが、
白雲斎さんに、新しくマクロを変更していただきまして、
解決しました。ありがとうございました。

[ ]
RE:12535 [CR+LF]を[LF]に纏めて変更したNo.12540
yamasan さん 02/07/24 17:00
 
ひろさん、こんにちは。お世話になります。yamasanです。

> こちらについて補足ですが、正規表現で検索する必要があります。

正規表現で検索することは、私でもどうにかできるのですが、
それにmacroが絡むと、思考が停止してしますような情けない状態なんです。

> 前述の「フォルダ内の全ての〜」のマクロの詳細については、公開後その
>ソースを御覧ください。

楽しみに待っております。厚かましくも、お願いを申し上げます。
ありがとうございました。

[ ]
RE:12523 [CR+LF]を[LF]に纏めて変更したNo.12541
yamasan さん 02/07/24 17:22
 
yamasanです。秀丸担当様、お世話になりました。(~o~)

>マクロを作れば一括処理できると思いますが、LFで保存する場合は、
>キー割り当てで「上書き保存(改行=LF)」を使えばダイアログを出さ
>なくても同名で保存できるので、あまり大量にファイルが無い場合

これも、今気が付きました。
キーの割り当ての中にあったんですね。さすが、エディタの秀丸さんです。
ありがとうございました。言われないと気が付かなかったです。m(_ _)m

[ ]
RE:12530 [CR+LF]を[LF]に纏めて変更したNo.12542
小西 さん 02/07/24 19:08
 
小西です。

>欲しいです。
>是非とも、掲載してください。
>よろしくお願いします。
こっちに載せときました。
  http://www001.upp.so-net.ne.jp/konishi/ruby/index.htm
自分専用のコードなので、かなりいい加減ですが重宝してます。
転載・改造、そのほかどうぞご自由に。


[ ]
RE:12542 [CR+LF]を[LF]に纏めて変更したNo.12545
はてな さん 02/07/25 10:21
 
早速、DLさせてもらいました。
ありがとうございました。

>小西です。
>
>>欲しいです。
>>是非とも、掲載してください。
>>よろしくお願いします。
>こっちに載せときました。
>  http://www001.upp.so-net.ne.jp/konishi/ruby/index.htm
>自分専用のコードなので、かなりいい加減ですが重宝してます。
>転載・改造、そのほかどうぞご自由に。
>

[ ]