親記事 / ▼[ 291 ]
▼[ 297 ]
▼[ 313 ]
▼[ 369 ]
▼[ 538 ]
▼[ 748 ]
|
NO.289
★便利!ひまわりBBSランチャーVer1.06 |
---|
{ Ver1.06の変更点: ひまわりVer1.38へ対応。 }
{---プログラム掲示板投稿フォーム--- 【ソフト名】ひまわりBBSランチャー (バージョン 1.06) 【作 成 者】北神 陽太 (連絡先:y-kitagami@nifty.ne.jp) http://homepage1.nifty.com/kitagami/index.htm 【種 別】フリーソフトウェア 【ひまわりのバージョン】ver.1.38 【転 件】可(転載条件:ご連絡があると喜びます) 【ひまわり本体への梱包】可 【実行時に利用作成するファイル】有(ひまわりエディタのhimapad.bakを利用) 【コメント】 「ひまわりユーザー プログラム掲示板 バックアップ」に掲載されたテキストから プログラムソース部分を取り出し、実行するランチャーです。
一時編集して起動できますので、質問やバグのサポート、掲載プログラム のテストに威力を発揮。
使い方:ヘルプを参照してください。
ひまわりエディタに貼り付けて実行する場合、himapad.bakファイルを 使うようなので、このプログラムから呼び出すプログラムも、himapad.bak を使っています。(削除する必要はありません) ---投稿フォームここまで---}
母艦の、サイズは、(100,152,740,533)。 その、タイトルは、「ひまわりBBSランチャーVer1.06」。 灰色で、画面クリア。
'*** メニュー作成 ***
メニューMファイルを、メニュー作成。 その、テキストは、「ファイル(&F)」。 メニューMファイルに、メニュー掲示板を開くを、メニュー追加。 その、テキストは、「掲示板 URLを開く(&O)」 その、ショートカットキーは、「Ctrl+O」 その、イベントは、(URL=『http://www.text2music.com/cgi/bbs/hiptree/cbbs.cgi』 URLを、起動。)
メニューMファイルに、メニューAを、メニュー追加。 その、テキストは、「-」
メニューMファイルに、メニュー終了を、メニュー追加。 その、テキストは、「閉じる(&C)」 その、ショートカットキーは、「Ctrl+C」 その、イベントは、終わり。
メニューM編集を、メニュー作成。 その、テキストは、「編集(&E)」 メニューM編集に、メニュー掲示板取り込みを、メニュー追加。 その、テキストは、「掲示板取り込み(&X)」 その、ショートカットキーは、「Ctrl+X」 その、イベントは、掲示板取り込み。
メニューM編集に、メニューBを、メニュー追加。 その、テキストは、「-」
メニューM編集に、メニューコピーを、メニュー追加。 その、テキストは、「コピー(&C)」 その、ショートカットキーは、「Ctrl+C」 メニューコピーに、メニューオリジナルを、メニュー追加。 その、テキストは、「オリジナル」 その、イベントは、( もし、取得ソース<>「」なら、取得ソースを、クリップボードへ、書く。 違えば、「※ 取得したソースはありません」と、言う。)
メニューコピーに、メニュー一時編集テキストを、メニュー追加。 その、テキストは、「一時編集テキスト」 その、イベントは、( もし、「{メモ0の、テキスト。}」<>「」なら、「{メモ0の、テキスト。}」を、クリップボードへ、書く。 違えば、「※ テキストがありません」と、言う。)
メニューM編集に、メニュー元に戻すを、メニュー追加。 その、テキストは、「一時編集テキストをオリジナルに戻す(&Z)」 その、ショートカットキーは、「Ctrl+Z」 その、イベントは、( もし、「{取得ソース}」<>「」なら、( LEFT(取得ソース、200)。 「●テキスト破棄して、オリジナルに戻しますか?\n\n」& 「▼取得している内容:\n\n{それ}」と、二択。 もし、それ=はいなら、メモ0の、テキストは、「{取得ソース}」。 ) 違えば、「※ 取得したソースがありません」と、言う。)
メニューM編集に、メニューCを、メニュー追加。 その、テキストは、「-」
メニューM編集に、メニュー整形を、メニュー追加。 その、テキストは、「テキストの自動整形(&A)」 その、ショートカットキーは、「Ctrl+A」 その、イベントは、自動整形。
メニューM実行を、メニュー作成。 その、テキストは、「実行(&R)」 メニューM実行に、メニュー実行を、メニュー追加。 その、テキストは、「実行(&R)」 その、ショートカットキーは、「F5」 その、イベントは、実行。 その、有効は、オフ。
メニューMヘルプを、メニュー作成。 その、テキストは、「ヘルプ(&H)」 メニューMヘルプに、メニューヘルプを、メニュー追加。 その、テキストは、「ヘルプ(&H)」 その、ショートカットキーは、「F1」 その、イベントは、ヘルプ。
'*** オブジェクト作成 *** ボタン0を、ボタンとして、作成。 その、サイズは、(10,0,140,40) その、テキストは、「掲示板取り込み」 その、イベントを、掲示板取り込みに、設定。
ボタン1を、ボタンとして、作成。 その、サイズは、(140,0,260,40) その、テキストは、「実行」。 その、イベントを、実行に、設定。 その、有効は、オフ。
リスト0を、リストとして、作成。 その、サイズは、(260,0,410,40) その、アイテムは、「オリジナル\n一時編集」 その、イベントを、一時編集に、設定。 その、値を、0に、設定。
メモ0を、メモとして、作成。 その、サイズは、(10,40,620,330) その、背景色は、RGB(255,255,192)。 その、編集は、オフ。 その、フォントサイズは、11。 その、テキストは、『'プログラムの取得条件は、』&「\n\n」& 『'1)<投稿者>の次に、コメント<{>で始まる。』&「\n」& 『'2)<記事><引用>の次に、<削除><キー>で終わる。』&「\n\n」& 『'上記の文字列が掲示板に無い場合、取得できません。』&「\n」& 『'また、上記文字列がプログラム内に記述されていると、正常に取得できません。』。
ラベル0を、ラベルとして、作成。 その、可視は、オフ。 その、サイズは、(10,330,620,350) その、フォント色は、白色。 その、透過処理は、オフ。 その、背景色は、青色。 その、テキストは、「」。
取得ソース=「」 退避テキスト=「」 母艦の、変更した時は、リサイズ。
待機。
*リサイズ '*** 母艦のサイズが変更されたとき、メモをリサイズ
灰色で、画面クリア。 x2=(母艦の、幅)-20 y2=(母艦の、高さ)-80 メモ0の、幅=x2 メモ0の、高さ=y2 ラベル0の、Yは、((母艦の、高さ)-40)。 待機。
*自動整形 '*** 一時編集テキストに、インデントを設定し、一時編集を表示
'現在のテキストを退避し、CrLfを作業文字に置換(Nullは要素数に反映されないため) 母艦の、有効は、オフ。 ラベル0の、可視は、オン。 メモ0の、背景色は、灰色。 それ=「{メモ0の、テキスト}」。 (CHR(13)&CHR(10))を、(「@カイギョウ」&CHR(13)&CHR(10))に、置換。整形ソース=それ。 整形ソースの、要素数。整形行数=それ。
'テキストを行単位で配列処理 整形行数回(カウンタ=回数-1。 作業行=整形ソース#カウンタ。 メッセージ=INT((回数/整形行数)*100)。 メッセージと、5の、余り。 もし、それ=0 なら、(ラベル0の、テキストは、「{メッセージ}%」。 ラベル0の、幅は、((メモ0の、幅)*(メッセージ/100)) 描画処理反映。) '含まれる文字を抽出し、グルーピング 識別A=LEFT(作業行,1)
作業行の中で、『待機』が、何文字目。識別B#0=それ。 作業行の中で、『飛ぶ』が、何文字目。識別B#1=それ。 作業行の中で、『戻る』が、何文字目。識別B#2=それ。 作業行の中で、『おわり』が、何文字目。識別B#3=それ。 作業行の中で、『終わり』が、何文字目。識別B#4=それ。 作業行の中で、『おわる』が、何文字目。識別B#5=それ。 作業行の中で、『取り込む』が、何文字目。識別B#6=それ。 識別Bの、配列合計値。識別B=それ。
作業行の中で、『もし』が、何文字目。識別C#0=それ。 作業行の中で、『回(』が、何文字目。識別C#1=それ。 作業行の中で、『繰り返す』が、何文字目。識別C#2=それ。 作業行の中で、『反復』が、何文字目。識別C#3=それ。 識別Cの、配列合計値。識別C=それ。
作業行の中で、『違えば』が、何文字目。識別D#0=それ。 作業行の中で、『でなければ』が、何文字目。識別D#1=それ。 識別Dの、配列合計値。識別D=それ。
'重複した整形操作に対応するため、一度空白を削除 それ=作業行。 『 』を、『 』に、置換。作業行=それ。 作業行の、前後の空白削除。作業行=それ。
'インデント設定(優先順位の低い順) インデント=4。 'デフォルトのインデント 倍率=2。 もし、識別D>0なら、インデント=3。 '違えば もし、識別C>0なら、インデント=2。 'もし もし、識別B>0なら、インデント=1。 '分岐 もし、識別A=「*」なら、インデント=0。'ラベル
「 」を、(インデント*倍率)度、リフレイン。 '倍率設定 作業行=それ&作業行。 整形ソース#カウンタ=作業行。 )
それ=整形ソース。 (「@カイギョウ」&CHR(13)&CHR(10))を、(CHR(13)&CHR(10))に、置換。 退避テキスト=それ。 リスト0の、値は、1。 一時編集を、呼ぶ。 ラベル0の、可視は、オフ。 母艦の、有効は、オン。 待機。
*一時編集 もし、(リスト0の、値)=0 なら、(メモ0の、編集は、オフ。メモ0の、背景色は、RGB(255,255,192) ボタン1の、テキストは、「実行」。 もし、ヘルプ表示=オフなら、退避テキスト=メモ0の、テキスト。 メモ0の、テキストは、取得ソース。) 違えば、(メモ0の、編集は、オン。メモ0の、背景色は、RGB(255,255,255) ボタン1の、テキストは、「一時編集実行」。 メモ0の、テキストは、退避テキスト。)
もし、ヘルプ表示=オン なら、(もし、取得ソース<>「」 なら、(ボタン1の、有効は、オン。メニュー実行の、有効は、オン。) ) ヘルプ表示=オフ。 戻る。
*掲示板取り込み もし、「{取得ソース}」<>「」なら、( LEFT(取得ソース、200)。 「●現在のテキスト破棄して、新しいテキストを取得しますか?\n\n」& 「▼取得している内容:\n\n{それ}」と、二択。 もし、それ=いいえなら、待機。 )
チェック0の、値は、オフ。 ボタン1の、有効は、オフ。 母艦最小化。 開始位置=0 終了位置=0 対象=「ひまわりユーザー プログラム掲示板 バックアップ」。
'表示しているBBSのテキストをコピー 'なぜかうまくいかないので、処理ごとに分割しウェイトをかけた 'PCのパフォーマンスによって、誤動作する場合はWaitを長くしてください 「」を、クリップボードへ、書く。 Wait=0.5 (Wait)秒、待つ。 対象を、アクティブ。(Wait)秒、待つ。 対象に、「%E」を、キー送信。 対象に、「A」を、キー送信。(Wait)秒、待つ。 対象に、「%E」を、キー送信。 対象に、「C」を、キー送信。(Wait)秒、待つ。 クリップボードを、読む。 取得テキスト=それ。 取得エラー=いいえ。 メモ0の、テキストは、「」。
CHR(47)。自身対策=それ。'このプログラム自身をコピーする対策
'先頭の投稿フォーム(コメント)を検索。 取得テキストの中で、『□投稿者』&自身対策が、何文字目。開始A=それ。 取得テキストの中で、『{』が、何文字目。開始B=それ。 もし、それ=0なら、(取得テキストの中で、『{』が、何文字目。開始B=それ。) '開始位置の決定条件 もし、(開始A>開始B または 開始B=0)なら、(取得エラー=はい。取り込み復帰へ、飛ぶ。) 開始位置=それ。
'投稿テキストの最後を検索 'BBSのデータで、「記事・・・キー」の間のスペースが不定なため2重チェック 取得テキストの中で、『削除』&『キー』&自身対策が、何文字目。終了A=それ。 取得テキストの中で、『記事』&『引用』が、何文字目。終了B=それ。 '終了位置の条件 終了C=終了B-終了A もし、(終了C<-7)または(終了C>-6)または(終了B=0)なら、(取得エラー=はい。取り込み復帰へ、飛ぶ。) 終了位置=それ。
'ソースを切り出す 取得テキストの中で、開始位置から、(終了位置-開始位置)つ、MID。 それを、トリム。 取得ソース=それ メモ0の、テキストは、取得ソース。 退避テキスト=取得ソース。 取得ソースを、クリップボードへ、書く。
ボタン1の、有効は、オン。 メニュー実行の、有効は、オン。 リスト0の、値は、0。 一時編集を、呼ぶ。 *取り込み復帰 母艦元のサイズ。 もし、取得エラー=はいなら、(「」を、クリップボードへ、書く。'エラー内容をクリア 「■BBSのテキストを取得できませんでした。\n\n」& 「 開始文字位置={開始位置}\n」& 「 終了文字位置={終了位置}\n\n」& 「 <{対象}>の投稿プログラムを表示させてください。\n\n」& 「 または、ソースの先頭には、<プログラム掲示板投稿フォーム>」& 「 のコメントが必要です。\n\n」& 「■掲示板のオリジナル全テキストをメモに表示させますか?」と、二択。 もし、それ=はいなら、メモ0の、テキストは、取得テキスト。 ) 待機。
*実行 'ひまわりエディタが使用するhimapad.bakを利用しています。 もし、(リスト0の、値)=1なら、(取得ソース=メモ0の、テキスト。)
取得ソースを、「{ランタイムのパス}」&「himapad.bak」へ、書く。 「{ランタイムのパス}」&「Himawari.exe {ランタイムのパス}himapad.bak」を、起動。
待機。
*ヘルプ リスト0の、値は、0。 一時編集を、呼ぶ。 ヘルプ表示=オン。 ボタン1の、有効は、オフ。メニュー実行の、有効は、オフ。 リスト0の、値は、-1。
メモ0の、テキストは、『▼▼▼ひまわりBBSランチャーVer1.05a 操作援助▼▼▼
★ヘルプ表示の終了方法 元に戻すには、リストから<オリジナル/一時編集>を選択してください。
★プログラム実行の注意 掲示板に掲載されたプログラムは、どんな動作をするのかわかりませんので、 【終了方法】をまず確認してください。もし、終了できなくてもあわてずに自力で なんとかしましょう。
プログラムを実行したら、感想はもちろん、バグや要望、アイデアなどが ありましたら、ぜひResを書き込んでください。きっと投稿者は喜びます(^^;
■初心者向けの使い方 ~~~~~~~~~~~~~~~~~~~ 1)<ひまわりユーザー プログラム掲示板 バックアップ>から、投稿プログラムを表示させます。
2)<掲示板取り込み>ボタンを押します。 (初回のみプログラムの取得に成功すると実行ボタンが有効になります)
3)<実行ボタン>を押すと、プログラムを起動します。
4)必要なら、<ひまわりエディタ>に貼り付けて保存してください。
<掲示板取り込み>ボタンで次々にプログラムを取得しましょう。
■パワーユーザー向けの使い方 ~~~~~~~~~~~~~~~~~~~~~~~~~~ 取得したソースのオリジナルと、一時編集したソースを切替ながらテスト できますので、掲載プログラムのアドバイスや添削、アイデアの追加などが できます。
字下げの行われていないソースでも、<自動整形>機能がありますので、ある程度 見やすくなるかもしれません。(現バージョンではネストに対応していませんが)
字下げは、以下のように設定されます。
ラベル ..フロー制御 ....条件分岐1/ループ ......条件分岐2 ........デフォルト
■機能説明 ~~~~~~~~ ◆各種ボタン
□掲示板取り込みボタン 表示しているプログラム掲示板のプログラム部分を取得します。 プログラムが取得できると、前のプログラムは取得した内容に 更新され、実行ボタンが表示されます。
プログラムの取得に失敗した場合、内容は変わりません。
□実行/一時編集実行ボタン 表示しているプログラムを実行します。 リストの選択で、オリジナルか一時編集を選択できます。
□表示リスト テキストボックスに表示、実行するプログラムを選択します。
◆メニュー
○ファイル ┣掲示板URLを開く ┃ ブラウザで、直接プログラム掲示板を起動します。 ┃ ┗閉じる プログラムを終了します。
○編集 ┣掲示板取り込み ┃ 表示しているプログラム掲示板のプログラム部分を取得します。 ┃ ┣○コピー ┃ ┣オリジナル ┃ ┃ 取得したオリジナルソースをクリップボードへコピーします。 ┃ ┃ ┃ ┗一時編集テキストをオリジナルに戻す ┃ 一時編集したテキストをクリップボードへコピーします。 ┃ ┣一時編集テキストをオリジナルに戻す ┃ 一時編集した内容をオリジナルの状態に戻します。 ┃ ┗テキストの自動整形 テキストボックスの内容を一時編集して、ラベルや分岐命令で 自動的にインデントを設定します。 (注意:現バージョンでは、ネスト構造に対応していません)
○実行 ┗実行 表示しているプログラムを実行します。 リストの選択で、オリジナルか一時編集を選択できます。
○ヘルプ ┗ヘルプ ヘルプを表示します。元に戻すには、リストの選択で、 オリジナルか一時編集を選択します。
■エラーメッセージについて ~~~~~~~~~~~~~~~~~~~~~~~~ 取得するプログラムの中に<投 稿 者>、<記 事 引 用>、<削 除 キー> (実際は半角スペースなし)といった文字列があると、プログラムの最初と 最後が判断できず、エラーとなる場合があります。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Copyright (C) 2002 by ≪Music Workshop≫北神 陽太 e-Mail: y-kitagami@nifty.ne.jp URL: http://homepage1.nifty.com/kitagami/index.htm =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= End of Help』 待機。 |
|