マクロでファイルが開けないNo.04827
paul さん 00/02/03 14:39
 
秀丸使い初めて一ヶ月も経たない初心者ですが、いろいろ不満があるので、
以下の要望を出したいと思います。

マクロのファイル名を扱う文( run と fileopen )でファイル名の絶対パス指定が
できません。
ドライブ名から入力しても相対パスとなって、カレントディレクトリ以下に探しに行
くようです。
以下のような場合です。
openfile "c:\lsic86\man\lsicman.tag";
if ( result == false )
{
message "ファイルを開けません。";
endmacro;
}
有名な秀丸エディタのマクロですからきっとバグではなく仕様なのでしょうが、
ここは絶対パス指定ができるのが自然ではないでしょうか、
実際ヘルプの裏技という項目には指定できることを示唆するものがあります。

ヘルプといえば、マクロキーワードである filename の先頭に $ をつけて使用する
かのように読める例文が所々にあり、
初心者の僕はこのバグに最初悩まされました。

もうひとつ。
C言語の関数定義における関数名の強調表示ですが、行の強調表示となっているため、
仮引数並びなどが複数行にわたる場合強調されないので気持ち悪いです。
また、ポインタ型を返す関数の場合、アスタリスクが関数名の直前につくと全く強調
表示されません。

以上改善お願いします。僕の勘違いでしたら、解決法をわかりやすく教えてください。

ちなみに僕の環境は、win95 + IE4 の統合環境です。

[ ]
RE:04827 マクロでファイルが開けないNo.04828
うっきー さん 00/02/03 15:36
 
>マクロのファイル名を扱う文( run と fileopen )でファイル名の絶対パス指定が
>できません。
>ドライブ名から入力しても相対パスとなって、カレントディレクトリ以下に探しに
>行くようです。
>以下のような場合です。
>openfile "c:\lsic86\man\lsicman.tag";
>if ( result == false )
>{
>message "ファイルを開けません。";
>endmacro;
>}

c:\lsic86\man\lsicman.tag のファイルを作成し、
上記のマクロを実行したら、ちゃんと開けましたよ。
(ファイル無しで実行した場合は「新規」で開きました。)

[ ]
RE:04827 マクロでファイルが開けないNo.04829
プックン さん 00/02/03 16:09
 
paul さんこんにちは

openfile "c:\\lsic86\\man\lsicman.tag";
と\マークをダブらせて記述してください。

>>ヘルプといえば、マクロキーワードである filename の先頭に $
"$"これが先頭にある説明は、文字列型変数で定義したファイルをopen
するという意味です。マクロhelpの"変数の使い方" を参照してください。


参考までに

秀丸エディタQ&A集より
http://win.blue.co.jp/~jr-kun/hm_macro.html

>「¥」の使い方
>Q.
>マクロでファイル名に「"C:\TEST.TXT"」と指定してもうまく動きません。
>   たとえば、次のマクロ文で「C:\TEST.TXT」を開きたいのですが、エラーに
>   なってしまいます。もちろん、このファイルは確かに存在しています。
>
>       openfile "C:\TEST.TXT";
>
>A.
>「\」はC言語同様特殊文字なので、
>
>    openfile "C:\\TEST.TXT";
>
>
>   というように「\」を2つ重ねて下さい。

to 秀丸担当さま

[ちょっと気になる]
秀丸のHelpに下記のようにありますが、ひょっとして書き間違いかな?。

>openfile "c:\soft\*.txt" のように指定すると、カレントディレクトリまで
>指定できます。

[ ]
RE:04828 マクロでファイルが開けないNo.04830
うっきー さん 00/02/03 16:22
 
>>マクロのファイル名を扱う文( run と fileopen )でファイル名の絶対パス指定
>ができません。
>>ドライブ名から入力しても相対パスとなって、カレントディレクトリ以下に探しに
>行くようです。
>>以下のような場合です。
>>openfile "c:\lsic86\man\lsicman.tag";
>>if ( result == false )
>>{
>>message "ファイルを開けません。";
>>endmacro;
>>}
>
>c:\lsic86\man\lsicman.tag のファイルを作成し、
>上記のマクロを実行したら、ちゃんと開けましたよ。
>(ファイル無しで実行した場合は「新規」で開きました。)

すいません、とんだ勘違いでした。
「新規」で開いたファイルは、C:\の"lsic86manlsicman.tag"という
ファイルでした。

04829のプックンさんのコメントの通りです。


[ ]
RE:04827 マクロでファイルが開けないNo.04832
ひろ さん 00/02/03 16:47
 
 paul さん今日は、ひろです。
> マクロのファイル名を扱う文( run と fileopen )でファイル名の絶対パス指定が
 出来ます。
> openfile "c:\lsic86\man\lsicman.tag";
 単に書き方の miss ですよ(^^)。秀丸では C 言語同様に「\」は escape
文字になっています。よって folder の区切りなどで「\」を表したい場合は
「\\」と書く必要があります。

> ヘルプといえば、マクロキーワードである filename の先頭に $ をつけて使用する
> かのように読める例文が所々にあり、
> 初心者の僕はこのバグに最初悩まされました。
 具体的にどの部分が分りにくかったかを書かれたら、次の版からひょっと
すると改善されるかもしれません、

> C言語の関数定義における関数名の強調表示ですが、行の強調表示となっているため、
> 仮引数並びなどが複数行にわたる場合強調されないので気持ち悪いです。
> また、ポインタ型を返す関数の場合、アスタリスクが関数名の直前につくと全く強調
> 表示されません。
 正規表現によって行の強調を行っており、「行」の強調な訳ですから複数
行で指定できないというのはある意味当然かもしれません。また「*」が付く
場合ですが、これは自分で強調の定義を書き直せば改善できると思います。
 しかしながら C 言語の場合は、「行の強調」に関する定義を全て list か
ら削除してしまえば、「上の強調行」「下の強調行」はそれぞれ以前の
version の「上の関数」「下の関数」と同じ動きをします。また「強調一覧」
の場合「関数一覧」を選べばよいですし、tags file を作成する場合の「ルー
ル」としては「(C 言語関数一覧)」を選択すればよいです。

[ ]
RE:04827 マクロでファイルが開けないNo.04849
paul さん 00/02/04 16:57
 
うっきーさん、ブックンさん、ひろさん丁寧なお答えありがとうございます。
(ここは公式のサポートなのに答えるのは有志の方なのでしょうか?)
\はエスケープ文字だということに気づきませんでした。C言語でも同じですよね。
恥ずかしい。でも、C言語を知らない初心者の人とかはやっぱり僕と同じ間違いを
するのではないでしょうか?
ヘルプに例文が1つ載っていれば間違わなくてすむと思います。>秀丸担当さん(で
いいのかな?)
これで本腰を入れてcを勉強することができます。(強調表示の仕方は、まだわから
ないけど…)

[ ]
RE:04849 マクロでファイルが開けないNo.04853
きいろいまふらあ さん 00/02/04 18:08
 
横からきいろいまふらあです。

>(ここは公式のサポートなのに答えるのは有志の方なのでしょうか?)

そういえばここは公式のサポートなのに有志が答えていいのかしらん?(^^;

>ヘルプに例文が1つ載っていれば間違わなくてすむと思います。>秀丸担当さん(で

まず擁護。
マクロヘルプの「目次」→「式について」→「文字列」に例文あります。
次に私見を控えめに。
確かに秀丸のヘルプはちょっと不親切かなあと思うことも少なくないです。

[ ]