超基本 ライブラリから関数の使用例を参No.10363
hutec さん 24/05/18 12:19
 
識者の皆様、いつもお世話になっております。

掲示板で質問するのも恥ずかしいので、関数の使用例をライブラリから検索したいで
す。

https://hide.maruo.co.jp/lib/macro/index.html

例)LoadStringFromFile関数を利用しているマクロ

恐らく、検索はタイトルだけだと思うので、
関数を使用しているマクロは検索できません。
また、マクロはzipになっています。

全てのマクロをダウンロード、展開し、
秀ファイラーclasicで *.mac とLoadStringFromFileで検索掛けることは可能ですが、
大変すぎます。

ライブラリや先人のマクロを検索する時に皆様はどうされているのでしょうか?

宜しくお願いします。

[ ]
RE:10363 超基本 ライブラリから関数の使No.10364
でるもんたいいじま さん 24/05/18 17:01
 
でるもんた・いいじまです。

☆ ☆ ☆

> ライブラリや先人のマクロを検索する時に皆様はどうされているのでしょうか?

私の場合、マクロは自分で最初から作ってしまうことがほとんどです。
ただし、強調表示設定などはライブラリーから探すこともあります。

関数の使い方などを知りたい場合、
@まずはヘルプ等で文法を確認
Aそれっぽいパラメーターを入れて実際に試してみる
Bいろいろ試してもうまくいかなかったり、あるいは実現までの道のりが遠かったり
する場合は、Googleで検索
というのが基本的な流れです。

HTMLやスタイルシート、C/C++の最新機能、Win32API、といったものについての情報
は、大体これで間に合います。ただ、秀丸マクロはそれらに比べると物凄くマイナー
な言語なので、Google検索(+掲示板の過去ログ検索)で見つからなければ、諦めて
掲示板で質問します。

☆ ☆ ☆

さて本題。

> …関数の使用例をライブラリから検索したいです。
> https://hide.maruo.co.jp/lib/macro/index.html
> 例)LoadStringFromFile関数を利用しているマクロ
>
> 恐らく、検索はタイトルだけだと思うので、
> 関数を使用しているマクロは検索できません。
> また、マクロはzipになっています。

ということですが、
> 全てのマクロをダウンロード、展開し、
という作業は、コンソールアプリとバッチファイルを使えば割と簡単に実現できます
よ。

前段の「ダウンロード作業の自動化」については、万一の事故が怖いのでここでは伏
せます。
とはいえ、マクロの登録件数が何万件、何十万件もあるわけではないので、ブラウザ
上でひたすら単純作業を繰り返してもさほど大変ではないはずです。

後段、zipファイルをすべて展開する作業については、ここ:
https://sourceforge.net/projects/infozip/files/
にあるツールが便利です。

PATHの通ったフォルダに unzip.exe を置き、zipファイルを集めたフォルダに移動し
たら、あとは次のようなバッチファイルを走らせるだけです。

for %%F in (*.zip) do (
md "%%~nF"
pushd "%%~nF"
unzip.exe "..\%%~F"
popd
)

ちなみに、LZHファイルについても同様のコマンドラインツール(Linux用のソース
コードをWindows向けにビルドしたもの)が存在します。もちろん、数が少なければ
一つ一つGUIのツールで展開してもかまいません。

☆ ☆ ☆

私からは以上です。ご参考になれば幸いです。

[ ]
RE:10364 超基本 ライブラリから関数の使No.10366
hutec さん 24/05/19 00:44
 
でるもんた・いいじま様
いつもお世話になっております。
休日なのにフォローして頂いて、頭が上がりません。

>私の場合、マクロは自分で最初から作ってしまうことがほとんどです。
自分の引き出しが少なすぎて、作業が進まず右往左往しております。


>ブラウザ上でひたすら単純作業を繰り返してもさほど大変ではないはずです。
この一言で、ダウンローダーを使えば簡単にダウンロード出来
る事を思い出しました。最近使っていなかったのですっかり忘れていました。

>前段の「ダウンロード作業の自動化」については、万一の事故が怖いのでここでは
>伏せます。

管理者様へ、下記はまずかったら削除してください。

1)窓の杜からCyotek WebCopyをダウンロード
https://forest.watch.impress.co.jp/library/software/cyo_webcopy/download_12030.html
2)インストール
3)アプリを起動し、websiteとsave folderを指定。
websiteにダウンロード先のURLを指定
https://hide.maruo.co.jp/lib/index.html
Save folderに自分のPCの保存先を指定
D:\hidemarulib <- 適当に
右端のCopyボタンを押すと、ダウンロードが始まる。
20分程度でダウンロード完了します。(解凍したファイルも含めて291MBでした)
何やらエラーも出ますが、私はスルーしました。
4)エクスプローラーを開いてダウンロードしたフォルダを選択
D:\hidemarulib
5)検索窓に*.zipと入力しzipの一覧を表示させる。
6)検索結果のところで、Ctrl+Aでファイルを全て選択
7)私のpcは7zipが入っているので、
右クリック-7zip-ここに展開
8)同様に拡張子がlzhのファイルもあるので、
上記5)の様に*.lzhと入力しlzhの一覧を表示させる。
引き続き上記6)7)を行う。
9)秀丸ファイラーclassicで、
ファイル名のすべてまたは一部 *.mac
ファイルに含まれる単語または句 LoadStringFromFile <- 調べたい関数名とか

恐らくエクスプローラーでは、ファイル名の拡張子とテキストファイル内の文字列の
同時指定は
出来ないと思うので、秀丸ファイラーclassicがお勧めかと。
全部で30分程度で終わりました。
お騒がせしました。

[ ]
RE:10363 超基本 ライブラリから関数の使No.10368
こみやんま さん 24/05/19 03:35
 
>恐らく、検索はタイトルだけだと思うので、
>関数を使用しているマクロは検索できません。
>また、マクロはzipになっています。

実はこれ、すごい重要な核心をついてるw
秀丸マクロは「zipでアップされている」がゆえに、
あと10年経過しても会話AIはほぼ秀丸マクロについては答えられないw

メジャーな言語については、すでにやりたいことを聞けば
そこそこの確度でコード出てくるし、
問い合わせるまでもなく、コードを記述している途中から
「どうせこういう処理したいんでしょ?」っと
かなりの確度で自動で数行程度〜10行程度のコードだしてくるけど



[ ]
RE:10366 超基本 ライブラリから関数の使No.10369
でるもんたいいじま さん 24/05/19 03:56
 
でるもんた・いいじまです。

まず、何はともあれ、当初の目的をしっかり達成できたようで何よりです。
いくつかコメントします。

☆ ☆ ☆

> ダウンローダーを使えば簡単にダウンロード出来る事を思い出しました。
....
> 1)窓の杜からCyotek WebCopyをダウンロード

あ゛ー、既にそういうアプリの存在をご存じでしたか^^
WebCopy の紹介記事をざっと眺めてきましたが、まさかここまで高機能とは。

☆ ☆ ☆

以下、もしかしたら蛇足になるかもしれませんが、色々と「別解」をご紹介したいと
思います。
「There's more than one way to do it.」という格言もあることですし。

☆ ☆ ☆

まず、「Windows以外の環境(たとえばMacOSやLinux)でも作業したい」あるいは
「バッチファイル等を使って全自動で動かしたい」という場合には、GNU WGet とい
うコンソールアプリが定石です。
(もしかして、こちらの存在も既にご存じでしょうか?)

公式サイト↓
https://www.gnu.org/software/wget/

最新版のWindowsバイナリ↓
https://eternallybored.org/misc/wget/

WGetのヘルプは全文英語ですが、ちょっと検索すれば日本語への全訳も複数見つかる
はずですし、使い方を解説する日本語記事も多数あります。

☆ ☆ ☆

ただしもちろん、WGetが WebCopy の全機能をカバーしている可能性はほぼゼロです。
一方で、WGetが備えている機能の中にも、「おそらく WebCopy にこの機能は存在し
ないだろう」というものが複数あります。

たとえば、私自身が実際に使ったことはありませんが、「POSTリクエストを送る」と
いう機能もWGetにはあるそうです。
また、BASIC認証の際のユーザー名・パスワードはコマンドラインなどで指定するの
で、この機能を使って「同じURLに対して、複数のアカウントを使ってそれぞれアク
セスする」ということも容易に可能です。

それに何より、WGetはコンソールアプリなので、バッチファイルなどの下請けとして
 WGet を使えば色々と複雑な作業が実現可能です。状況によっては、バッチファイル
起動から作業終了までは何もせず待っているだけでいい、という設計が十分可能です。
あるいは、最初にバッチファイルを起動する作業すら、「当該バッチファイルを無人
のサーバー上に設置して、毎週金曜日の深夜2時になると自動的に起動」のような仕
掛けを組むことが可能です。

もちろん、そういう仕掛けを自分で組むためには、バッチファイルのテクニックなど
色々な予備知識が必要です。

☆ ☆ ☆

> 7)私のpcは7zipが入っているので、
> 右クリック-7zip-ここに展開

おお、それで一発でしたか。他のGUIツールでも、同様の機能を備えたものは色々と
ありそうですね。

☆ ☆ ☆

> 9)秀丸ファイラーclassicで、
> ファイル名のすべてまたは一部 *.mac
> ファイルに含まれる単語または句 LoadStringFromFile <- 調べたい関数名とか
> 恐らくエクスプローラーでは、ファイル名の拡張子とテキストファイル内の文字列
>の同時指定は出来ないと思うので、

この検索機能ですが、実は秀丸エディタ本体にも、ほぼ同じ機能が存在します。
具体的には、メニューバーの構成を特にいじっていなければ、「検索(S)」のいちば
ん下のほうに「grepを実行(@)」という項目があるはずです。
もしそこに見当たらなければ、メニューバーの「その他(O)」または「ツール(T)」の
中に「メニュー編集(M)」があるはずですので、その画面上で、「grepを実行」が
「検索」の中に表示されるよう設定してください。

※秀丸「メール」のほうの状況はスミマセン、存じ上げません。

☆ ☆ ☆

さらに、全文検索の作業すらもバッチファイルとコンソールアプリで自動化したい、
という場合には、正規表現が不要ならWindows標準の find.exe が使えますし、正規
表現が必要なら GNU Grep が第一選択だと思います。

ただし、「サブフォルダ内も含めて、特定の拡張子のファイルのみを全部」という場
合には一工夫必要です。Windowsのバッチファイルならたとえば

del d:\results.txt
for /r /d %%D in (.) do (
grep -E --with-filename "Load.+File" "%%~D"\*.mac >> d:\results.txt
)

で行けるはずです。
(ただし上記のコード、動作確認はしていないので、もし何かミスがあったらゴメン
ナサイ(汗))

Windows以外の環境では(あるいはWindows上でも、cmd.exeの代わりにbashなどを使
う場合は)、GNU Findutils を使うのが順当だと思います。

Windows上でFindutilsを使う場合にはいくつか細かい工夫が必要なのですが、その話
を続けているとさすがに掲示板の主旨から脱線しすぎるので、今回その話は省こうと
思います。

☆ ☆ ☆

大体このくらいでしょうか。長くなりましたので一旦ここで終わろうと思います。
ではでは。

[ ]
RE:10368 超基本 ライブラリから関数の使No.10383
でるもんたいいじま さん 24/05/28 15:52
 
でるもんた・いいじまです。

亀レス失礼します。
しかも重箱の隅です。

> >恐らく、検索はタイトルだけだと思うので、
> >関数を使用しているマクロは検索できません。
> >また、マクロはzipになっています。
>
> 実はこれ、すごい重要な核心をついてるw
> 秀丸マクロは「zipでアップされている」がゆえに、
> あと10年経過しても会話AIはほぼ秀丸マクロについては答えられないw

最後の結論については同意します。

ただ、「zipでアップされているがゆえに」という点は、それほど本質的なネックで
はないと思います。極論、サーバー上でアーカイブを展開して、テキストデータを適
宜加工して(メールアドレスを伏字にするとか、もし必要なら文字コード・改行コー
ドの変換を施すとか)、その上で、どこかのURLで生テキストを閲覧できるようにす
ればそれで済みます。

(類例としてGitHubなどでも、Webブラウザを使って「テキストデータの直接閲覧」
と「zip形式での一括ダウンロード」が両方可能ですよね。ただ念のため申し上げて
おくと、秀シリーズの各種ライブラリをGit等で運用するのは、テキストベースの大
規模プロジェクトを経験していない「普通の人」にとって、かなり敷居が高いと思い
ます。)

むしろ個人的には、生成AIが秀丸マクロに対応できそうにない最大の原因は、「教師
データが少なすぎるから」だと考えています。秀シリーズの利用者数は、たとえば W
ord/Excel と比べて3桁、またはそれ以上に少ないはずですから。

以上、長々と失礼いたしました。<(_ _;)>

[ ]