saveas filename,euc;No.02353
famers さん 01/07/13 20:32
 
はじめまして。

SJISのファイルをEUCに大量に変更する必要があって、

saveas filename,euc;
exit;
としたのですが、保存ファイルは、SJISのままなのです。

簡単なものなので間違う場所がなく、bug?とか思ったりするのですが、
どんなものでしょう。

#ほんとうは、ファイルを手動で開かずとも所定のディレクトリー内の全ファイルをm
acroにやらせたいのですが、、、
-------
ハンドルがidと同じのままにしてあった投稿
 02352 01/07/13 20:22  (発言者削除) は、投稿者名が残ってるのですが、全部消
せないのでしょうか。>管理者様

[ ]
RE:02353 saveas filename,euc;No.02355
TAKA さん 01/07/13 22:00
 
TAKA です。

>saveas filename,euc;
>exit;
>としたのですが、保存ファイルは、SJISのままなのです。
>
>簡単なものなので間違う場所がなく、bug?とか思ったりするのですが、
>どんなものでしょう。

私の所では正常でした。
秀丸3.08 + Windows MEで確認しました。


>#ほんとうは、ファイルを手動で開かずとも所定のディレクトリー内の全ファイルをm
>acroにやらせたいのですが、、、

[hidesoft.4:02008 2001/04/21]で特定のフォルダ下のファイルに
対して置換するというマクロの書き込みがあるので、置換する部分
を「saveas」に直すだけで簡単に出来ます。

その前に、「saveas」が正常に機能していないのが謎ですね。
#どこかの設定が影響しているのかなー

[ ]
RE:02353 saveas filename,euc;No.02357
番頭++ さん 01/07/13 22:20
 
正常でないとは、バイナリエディタとかでの確認ですか ???

再度「秀丸」で開いて、
「動作環境」の EUC の自動判定が無いとかのことですか ...

[ ]
RE:02355 saveas filename,euc;No.02358
famers さん 01/07/14 08:40
 
>私の所では正常でした。
>秀丸3.08 + Windows MEで確認しました。

秀丸3.07,秀丸3.08 + Windows 98,windows2000pro
のどの組み合わせででも同じ現象です。

>[hidesoft.4:02008 2001/04/21]で特定のフォルダ下のファイルに
>対して置換するというマクロの書き込みがあるので、置換する部分
>を「saveas」に直すだけで簡単に出来ます。
>
>その前に、「saveas」が正常に機能していないのが謎ですね。
>#どこかの設定が影響しているのかなー

[hidesoft.4:02008 2001/04/21]は、この謎がとけたら試してみます。
情報ありがとうございます。


[ ]
RE:02357 saveas filename,euc;No.02359
famers さん 01/07/14 08:44
 
>正常でないとは、バイナリエディタとかでの確認ですか ???

いいえ。

>再度「秀丸」で開いて、
>「動作環境」の EUC の自動判定が無いとかのことですか ...

そうです。

[ ]
RE:02358 saveas filename,euc;No.02360
famers さん 01/07/14 08:53
 
>>私の所では正常でした。
>>秀丸3.08 + Windows MEで確認しました。
>
>秀丸3.07,秀丸3.08 + Windows 98,windows2000pro
>のどの組み合わせででも同じ現象です。

嘘でした、済みません。
秀丸3.07,秀丸3.08 + windows2000pro
です。

いま、家の秀丸3.08 + windows98でやりましたところ
saveas filename,euc;で[CR+LF]のEUCができています。
saveas filename,euc,lf; で望みのものができました。
お騒がせしました。

ということは、会社でのwin2000profesionalで起こっているということです。
lfは、効いていました。euc,lf;では、SJIS+LFとなっておりました。
-->秀丸の自動判別で、ですが。

[ ]
RE:02357 saveas filename,euc;No.02361
famers さん 01/07/14 08:58
 

>再度「秀丸」で開いて、
>「動作環境」の EUC の自動判定が無いとかのことですか ...

02360でご報告の通りですが、EUC の自動判定が失敗することがあるのでしょうか。
月曜までbinaryは、どの状態か確認できないのですが。
データは、HTML埋め込みのphpスクリプトが書かれた日本語混じりのものです。
前半は、日本語がでてきません。

[ ]
RE:02361 saveas filename,euc;No.02362
famers さん 01/07/14 09:03
 

>データは、HTML埋め込みのphpスクリプトが書かれた日本語混じりのものです。
>前半は、日本語がでてきません。

済みません。
上記取り消しておきます。
テストに使ったものが、「日本語がでてきません」ものか、「日本語混じりのもの」
か確認できませんので。


[ ]
RE:02361 saveas filename,euc;No.02363
TAKA さん 01/07/14 11:20
 
TAKA です。

>02360でご報告の通りですが、EUC の自動判定が失敗することがあるのでしょうか。

半角カナを含んでいる場合に誤認識を起こす場合があります。
サーチエンジンで「EUC JIS 誤認識」で検索をかけると、この辺り
の事情が分かると思います。

また、少しでも誤認識を減らすための案が
[hidesoft.2:08896 2001/06/05]
で出ていました。

[ ]
RE:02363 一括の置き換え、セーブ。(saveaNo.02373
famers さん 01/07/17 09:39
 
TAKA、番頭++ さん、先日はありがとうございました。
情けないオチとなってしまいました。
最初にwin2kでテストしたデータが日本語がないものでした。
日本語のデータで実行しましたところ、正しく処理されました。
お騒がせしました。

さて、
教えていただいた[hidesoft.4:02008 2001/04/21]をカスタマイズし、下記のものを
実行させましたところ、どうもメモリーに次々とオープンした秀丸のプロセスが残っ
た状態となってリソース不足でフリーズする結果となります。closehidemaruforced
だけではダメなのでしょうか。
(win2k,hidemaru3.08で)
(win98,hidemaru3.08では、if(#i > 1) closehidemaruforced #handle[#i - 1];をc
losehidemaruforced #handle[#i];として、saveas後に実行して同じ現象)

もし、見ていらっしゃったら、作者の山紫水明さんの環境では、そうはならないので
しょうか。
(変更した部分が悪影響しているかなぁ)
もう一点質問なのですが、全てのマクロコマンドのオペランドの説明、レファレンス
は、どこかにあるでしょうか。(helpに全て書かれてないですよねぇ。注意不足?)

よろしくご教授ください。


//------------------------------------------------------------------//
// #handle_1  マクロ起動ウィンドウ
// #handle_g  grep結果ウィンドウ
//
#starttime = tickcount;
#handle_1 = hidemaruhandle( 0 );
$current_dir = "D:\\My Documents\\xxxxxx\\public_html\\";
grep ".+", "*.phtml;*.inc;*.sub;*.php",$current_dir,regular,subdir,icon,file
list;
#n = result;
if(#n > 0){
replaceallfast "\\([0-9]+\\)$", "", regular;
//行番号を削除
gofiletop;
#i = 1;
while( #i <= #n ) {
$file[#i] = gettext( 0, y, linelen, y );
down;
#i = #i + 1;
}
#handle_g = hidemaruhandle( 0 );
changename  "grep.tmp";
save;
closehidemaruforced #handle_1;
//
#i = 1;
while( #i <= #n ) {
openfile "/h " + $current_dir + $file[#i];
#handle[#i] = hidemaruhandle(0);
if(#i > 1) closehidemaruforced #handle[#i - 1];
call Replace;
if(updated == 1){ // grep filelistに変更ファイルをマーク
setactivehidemaru #handle_g;
gofiletop;
down #i-1;
insert "* ";
save;
}
setactivehidemaru #handle[#i];
saveas filename, euc, lf;
#i = #i + 1;
}
closehidemaruforced #handle_g;
#time = tickcount - #starttime;
message "終わりました\n" + str(#time/1000) + " 秒かかりました";
}else{
message "該当のファイルはありませんでした\n";
}
endmacro;
//
//処理
Replace:
replaceallfast "i18n_internal_encoding","mb_internal_encoding";
・・・・・・replaceallfast 13行
replaceallfast "^mail\\(|[\\t| ]mailil\\(","mb_send_mail\\(",regular;
return;
//------------------------------------------------------------------//

[ ]
RE:02373 一括の置き換え、セーブ。(saveaNo.02375
ひろ さん 01/07/17 12:04
 
 famers さん今日は、ひろです。
> 教えていただいた[hidesoft.4:02008 2001/04/21]をカスタマイズし、下記のものを
> 実行させましたところ、どうもメモリーに次々とオープンした秀丸のプロセスが残っ
 他にもウィンドを操作するマクロには同じ問題が付きまとっていて、ウィ
ンドの切り替えも失敗する場合が有ります。これを少しでも軽減するには、
##j = 0;
while( 1 ){
  closehidemaruforced #handle[#i];
  if( result )break;
  else if( ##j > 10 ){
    message "失敗";
    endmacroall;
  }
}
というように result で確認し、失敗する場合は何度か
closehidemaruforced を実行するようにすると良いでしょう。
 また常に作業を行うウィンドは 1 つにしておいて、編集するファイルは
loadfile を使って読み込むようにマクロをコーディングするとエラーが少
なくなります。
 マクロを書き換えようと思ったのですが、
> ・・・・・・replaceallfast 13行
何かおかしくなっています。

[ ]
RE:02373 一括の置き換え、セーブ。(saveaNo.02376
TAKA さん 01/07/17 12:40
 
TAKA です。

>さて、
>教えていただいた[hidesoft.4:02008 2001/04/21]をカスタマイズし、下記のものを
>実行させましたところ、どうもメモリーに次々とオープンした秀丸のプロセスが残っ
>た状態となってリソース不足でフリーズする結果となります。closehidemaruforced
>だけではダメなのでしょうか。

フリーズするのは、謎ですが、プロセスが残るのは、以下のことだ
と思います。(Q&A集からの引用)
>●秀丸終了後もメモリー上に残骸がある
>Q.秀丸を閉じても、メモリー上に秀丸が残っているようなのですが。
>A.「その他→動作環境→ウィンドウ」の「秀丸の瞬間起動」チェッ
>クボックスがONになっていると、秀丸を閉じても実際にはウィン
>ドウを廃棄せずに(メモリー上に残したまま)瞬間起動用として利
>用されます。

気になるのは、このマクロではバッファ($file、#handle)に全
ファイル数分のデータをため込む処理をしているので、ファイルが
多すぎてメモリ不足をおこしているのかも。処理対象ファイル数は
どのくらいでしょうか?根拠はありませんが、フォルダ名自体が長
いですが、100位なら大丈夫だと思うのですが。

処理対象ファイル数を少なくして動作させるとどうなるでしょうか?
もし、ファイル数が少なくて動くなら、メモリの取りすぎになるの
だと思います。
ファイルを少なくするか、頻繁に利用するので、そんなことは面倒
とかであれば、別のマクロが必要になりますね。
http://www.infomadonna.ne.jp/~takata/hm/index.htm#macro
に、「複数ファイル、複数候補の一括置換」というマクロが
ありますので、それを改造しても良いと思います。ファイル数が何
個あってもメモリを取りません。


>(変更した部分が悪影響しているかなぁ)

マクロを変更しないで、マクロを動かしてみたらどうでしょうか?
意図するマクロとは違うと思いますので、フォルダごと、どこか適
当なワーク領域にコピーして、そこでマクロを動かしてみるとよい
と思います。
それで、問題なく動くなら、変更した部分に何らかの原因があると
いうことになります。


>もう一点質問なのですが、全てのマクロコマンドのオペランドの説明、レファレンス
>は、どこかにあるでしょうか。(helpに全て書かれてないですよねぇ。注意不足?)

ちなみに、何がヘルプに載っていなかったでしょうか?
私の知る限り載っていないものはないと思いますが。載っていなけ
れば、使えないと思います。
「filename2」など、ヘルプ自体に記述はされていますが、キー
ワード検索で検索出来ないものがあります。そういうことでしょう
か?

[ ]
RE:02375 一括の置き換え、セーブ。(saveaNo.02377
famers さん 01/07/17 13:24
 
ひろさん今日は。

> 他にもウィンドを操作するマクロには同じ問題が付きまとっていて、ウィ
>ンドの切り替えも失敗する場合が有ります。これを少しでも軽減するには、

http://win.blue.co.jp/~jr-kun/qa5prev/hidemaru_qa/3_window.html
秀丸ウィンドウの管理を精読してみます。

>##j = 0;
>while( 1 ){
>  closehidemaruforced #handle[#i];
>  if( result )break;
>  else if( ##j > 10 ){
>    message "失敗";
>    endmacroall;
>  }
>}
>というように result で確認し、失敗する場合は何度か
>closehidemaruforced を実行するようにすると良いでしょう。
死ぬまでやり続けるのですね。で、##jは、予約語なのですか。どこかでカウントア
ップしているのでしょうか。

> また常に作業を行うウィンドは 1 つにしておいて、編集するファイルは
>loadfile を使って読み込むようにマクロをコーディングするとエラーが少
>なくなります。

やってみます。

> マクロを書き換えようと思ったのですが、
>> ・・・・・・replaceallfast 13行
>何かおかしくなっています。

この間の13行を省略したという意味です。

[ ]
RE:02376 一括の置き換え、セーブ。(saveaNo.02378
famers さん 01/07/17 14:10
 
TAKA さん、こんにちは。
とりあえず、お答えできるところだけ。

>フリーズするのは、謎ですが、プロセスが残るのは、以下のことだ
>と思います。(Q&A集からの引用)
>>●秀丸終了後もメモリー上に残骸がある
>>Q.秀丸を閉じても、メモリー上に秀丸が残っているようなのですが。
>>A.「その他→動作環境→ウィンドウ」の「秀丸の瞬間起動」チェッ
>>クボックスがONになっていると、秀丸を閉じても実際にはウィン
>>ドウを廃棄せずに(メモリー上に残したまま)瞬間起動用として利
>>用されます
瞬間起動をはずしても同じなので、closehidemaruforcedのハンドル名の指定が正し
くないかも、です。

>気になるのは、このマクロではバッファ($file、#handle)に全
>ファイル数分のデータをため込む処理をしているので、ファイルが
>多すぎてメモリ不足をおこしているのかも。処理対象ファイル数は
>どのくらいでしょうか?根拠はありませんが、フォルダ名自体が長
>いですが、100位なら大丈夫だと思うのですが。

300余りです。

>処理対象ファイル数を少なくして動作させるとどうなるでしょうか?
>もし、ファイル数が少なくて動くなら、メモリの取りすぎになるの
>だと思います。
>ファイルを少なくするか、頻繁に利用するので、そんなことは面倒
>とかであれば、別のマクロが必要になりますね。
>http://www.infomadonna.ne.jp/~takata/hm/index.htm#macro
>に、「複数ファイル、複数候補の一括置換」というマクロが
>ありますので、それを改造しても良いと思います。ファイル数が何
>個あってもメモリを取りません。

見させていただいて、取り混ぜながら再加工してみます。

>>(変更した部分が悪影響しているかなぁ)
>
>マクロを変更しないで、マクロを動かしてみたらどうでしょうか?
>意図するマクロとは違うと思いますので、フォルダごと、どこか適
>当なワーク領域にコピーして、そこでマクロを動かしてみるとよい
>と思います。
>それで、問題なく動くなら、変更した部分に何らかの原因があると
>いうことになります。

そうですね。replace処理、grep.tmpへの更新マーク処理をしなかったバーション(全
てを単純にsaveasしたもの)は、問題なく終了したのでどちらかまたは両方がメモ
リーの圧迫、ウィンドウハンドルの矛盾を引き起こしているよう。スクリプトとにら
めっこしても分からない(^^;


>ちなみに、何がヘルプに載っていなかったでしょうか?
>私の知る限り載っていないものはないと思いますが。載っていなけ
>れば、使えないと思います。

例えば、jump。
#i=20;
jump #i;
---------
jump 20;
---------
どちらもエラーになります。ヘルプのjumpに関する記載は、
「jump 指定行に移動」 だけだと思うのですが。

期待値は、
コマンド  指示  オプション
-------------------------------
jump   int lines [,linetop];
 移動する行を数値で指定
 例 jump 20,linetop;//20行目の行頭へジャンプ
などです。
詳しく例示されているものや簡単な記述のものが混在していて、共通した文法で記載
されたものが、他にあるのではと思ったのです。
もし、「jump 指定行に移動」だけだと推測をいくつか試す、ダメなときはここで聞
く、という手順になってしまいます。または、元スクリプトで使われてたdownに逃げ
るか(逃げました)。
「jump 指定行に移動」 の説明と共にjump  int lines;の文法が全てにほしいと言う
ことです。ヘルプにないですよね(自信なさげ)

>「filename2」など、ヘルプ自体に記述はされていますが、キー
>ワード検索で検索出来ないものがあります。そういうことでしょう
>か?

いいえ、これは、machelp.macで解決しました。
片言のマクロしか使っていなかったのですが、今回、俺にも使えるかもと思い、簡潔
なレファレンスがほしかったのです。入門編が終わったPHPと文法も近いようなので、
親しみやすいです。

[ ]
RE:02378 一括の置き換え、セーブ。(saveaNo.02379
山紫水明 さん 01/07/17 16:22
 
 famersさん,こんにちは。

 どうも私のマクロがいろいろ悪さをしているようで。(^^;
 TAKA さん,ひろさんにもフォローしていただいて恐縮です。

 》300余りです。

 この大きな数と頻繁なウィンドウの転換があると私も原因はよくわかりません。
 #2003 の方のマクロは setactivehideamru を使っていないのでもしかしたら
・・・とはかない希望を持ちますが,気が向いたら試してください。

》ヘルプのjumpに関する記載は、
》「jump 指定行に移動」 だけだと思うのですが。

 jump は引数が指定できなくて,ダイアログを出すだけです。この文の説明は
ちょっと誤解を与えやすいですね。

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

[ ]
RE:02377 一括の置き換え、セーブ。(saveaNo.02380
ひろ さん 01/07/17 17:39
 
 famers さん今日は、ひろです。
> で、##jは、予約語なのですか。どこかでカウントア
> ップしているのでしょうか。
 凡ミスです。ブロックの中でカウントアップする必要があります(^^;。

[ ]
RE:02378 一括の置き換え、セーブ。(saveaNo.02381
TAKA さん 01/07/17 18:22
 

TAKA です。

>>>(変更した部分が悪影響しているかなぁ)
>>
>>マクロを変更しないで、マクロを動かしてみたらどうでしょうか?
>>意図するマクロとは違うと思いますので、フォルダごと、どこか適
>>当なワーク領域にコピーして、そこでマクロを動かしてみるとよい
>>と思います。
>>それで、問題なく動くなら、変更した部分に何らかの原因があると
>>いうことになります。
>
>そうですね。replace処理、grep.tmpへの更新マーク処理をしなかったバーション(全
>てを単純にsaveasしたもの)は、問題なく終了したのでどちらかまたは両方がメモ
>リーの圧迫、ウィンドウハンドルの矛盾を引き起こしているよう。スクリプトとにら
>めっこしても分からない(^^;

追加した部分が問題のようですね。ただ、どこが問題なのかが分か
らないですね。
元のマクロに必要な処理も1行づつ追加しては実行しながら、おか
しくなる所を見つけていくしかなさそうですね。
「がんばってみて下さい。」と応援しか出来ませんが。


>>ちなみに、何がヘルプに載っていなかったでしょうか?
>>私の知る限り載っていないものはないと思いますが。載っていなけ
>>れば、使えないと思います。
>
>例えば、jump。
>#i=20;
>jump #i;
>---------
>jump 20;
>---------
>どちらもエラーになります。ヘルプのjumpに関する記載は、
>「jump 指定行に移動」 だけだと思うのですが。

はい、「jump」はパラメータを指定出来ないので、何も記述があり
ません。
「jump」は、「その他→コマンド一覧→カーソル移動系→指定行に
移動」と同じ動作で、指定行を入力するダイアログを表示するだけ
の命令です。

パラメータが指定出来る物は、ヘルプに記述されていると思います。

[ ]
RE:02376 ヘルプにないマクロコマンドNo.02382
ひろ さん 01/07/18 15:59
 
 TAKA さん今日は、ひろです。余分な突っ込みです。
> ちなみに、何がヘルプに載っていなかったでしょうか?
> 私の知る限り載っていないものはないと思いますが。載っていなけ
> れば、使えないと思います。
 そうでもないのでは? 実際に役に立つかどうかは別にして、iconall,
FIND(UP)LINK, length や about 等ダイアログを表示させるコマンドはマク
ロヘルプにはないですよね。
 それ以外にも、HIDEMSUB.DLL にはよく分からないものが残っているような
気が...。

[ ]
RE:02382 ヘルプにないマクロコマンドNo.02383
TAKA さん 01/07/18 18:32
 
TAKA です。

>> ちなみに、何がヘルプに載っていなかったでしょうか?
>> 私の知る限り載っていないものはないと思いますが。載っていなけ
>> れば、使えないと思います。
> そうでもないのでは? 実際に役に立つかどうかは別にして、iconall,
>FIND(UP)LINK, length や about 等ダイアログを表示させるコマンドはマク
>ロヘルプにはないですよね。

載っていないものもあるのですね。知りませんでした。知らないの
で、使いたくても使えないですね。

ひょっとしたら、便利なものが隠されているかもしれませんね。

[ ]
RE:02382 ヘルプにないマクロコマンドNo.02384
きいろいまふらあ さん 01/07/19 03:15
 
さらに余計なことですけど。

>> 私の知る限り載っていないものはないと思いますが。載っていなけ
>> れば、使えないと思います。
> そうでもないのでは? 実際に役に立つかどうかは別にして、iconall,
>FIND(UP)LINK, length や about 等ダイアログを表示させるコマンドはマク
>ロヘルプにはないですよね。

マクロヘルプに載っていないものは、「使ってはいけないもの」と
理解すべきと思います。逆の言い方をすれば

 使っていいものはマクロヘルプに載せて下さい。>秀丸担当様

ということです、気持ちとして。
「使ってはいけないもの」の仕様や使い方は公開されなくて当然。
ユーザが自己責任で使うのは勝手。

#もちろん、公開されてるマクロコマンドも、ひいては秀丸自体が
#ユーザの自己責任で使うものでしょうけど、ちょっと意味合いが
#違ってくると思います。

[ ]
RE:02379 一括の置き換え、セーブ。(saveaNo.02385
秀丸担当 さん 01/07/19 17:20
 
> jump は引数が指定できなくて,ダイアログを出すだけです。この文の説明は
>ちょっと誤解を与えやすいですね。

たしかにjump命令は誤解を与えやすいのでヘルプを修正しておきます。

[ ]
RE:02384 ヘルプにないマクロコマンドNo.02386
秀丸担当 さん 01/07/19 17:20
 
>マクロヘルプに載っていないものは、「使ってはいけないもの」と
>理解すべきと思います。逆の言い方をすれば

マクロヘルプに載っていないのは、その通りの位置付けと思って
もらっていいと思います。
自己の責任で使ってください。


[ ]