ab.com コミュニティ https://www.activebasic.com/forum/ |
|
コメント中の文字に因り、処理過程に影響を及ぼす https://www.activebasic.com/forum/viewtopic.php?t=2679 |
ページ 1 / 1 |
作成者: | ベーやん [ 2011年6月19日(日) 18:12 ] |
記事の件名: | コメント中の文字に因り、処理過程に影響を及ぼす |
何時も、お世話に成っています。 行単位での注釈中に"/*"を入れたら以降のプロシージャの名前が認識されない。 但し、"*/ ~ /*"を対で使用する場合は、この限りでない!! 例) [ここをクリックすると内容が表示されます]
宜しくお願いします。
Sub MainWnd_CommandButton1_Click() 'ファイル読込(ab_*.sbp/*.txt) End Sub Sub MainWnd_CommandButton2_Click() Debug End Sub MainWnd_CommandButton2_Click が認識されず、ボタンを押下しても反応しない! |
作成者: | たかせ [ 2011年6月19日(日) 20:06 ] |
記事の件名: | 複数行に渡るコメント |
/*を検出した時、*/が見つかるまでのすべてがコメントアウトとみなされます。 だから上記の結果になって当然です。 ABのヘルプに以下の記載がありますのでご確認下さい。 複数行に渡るコメント /* ~ */ で囲まれた範囲の文字列は、すべて注釈と見なされます。複数行に渡るコメントアウトも可能です。 /* 注釈文1 注釈文2 注釈文3 */ Print /*コマンド行の途中もコメントアウトできます。*/ "test" 備考 "/*" 及び "*/" は、ネスト構造ではありません。コンパイラは、バッファ中から "/*" を識別すると、"*/" が現れるまでサーチを行います。よって、"/*" と "*/" の間に "/*" や "'" などの注釈記号が含まれていたとしても、それらはコメントアウトの対象と判断されます。 |
作成者: | ベーやん [ 2011年6月20日(月) 00:45 ] |
記事の件名: | 行単位での注釈 |
件名は、こちらの方が正しいですね。 >/*を検出した時、*/が見つかるまでのすべてがコメントアウトとみなさ>れます。 複数行に渡るコメントの場合は、その通りでしょう。 >ABのヘルプに以下の記載がありますのでご確認下さい。 [行単位での注釈] 「アポストロフィー(')を指定します。改行までが注釈文となります。」 と、在ります。 よって、アポストロフィー(')以降は、如何なる文字やコマンドも処理過程に一切影響を及ぼさないため、注釈文として活用できる筈ですが。 |
作成者: | たかせ [ 2011年6月20日(月) 12:51 ] |
記事の件名: | アポストロフィー(')に気が付きませんでした |
アポストロフィー(')に気が付かなくて大変申し訳ありませんでした。 テストしたところ ●該当箇所の"'ファイル読込(ab_*.sbp/*.txt)"以降のコードがコメントとして認識されているようです。 ●だからCommandButton2をクリックしても当然動作しません。 ●さらにウインドーを閉じてもウインドーを閉じた時の処理も認識されていないのでプログラムは実行中のままです。タスクマネージャーで確認しました。これは修正してコンパイルしたときに「出力ファイルの書き込みに失敗しました。実行されている可能性があります。」とメッセージが表示され判明したのです。 なので現在の対応として /* */とアポストロフィー(')を隣接した箇所で使用しないほうがよいと思います。 [ここをクリックすると内容が表示されます]
●2011年06月21日(火) 記事を修正しました。コード: /'----------------------------------------------------------------------------- ' イベント プロシージャ '----------------------------------------------------------------------------- ' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。 ' ウィンドウ ハンドル: hMainWnd ' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。 '----------------------------------------------------------------------------- ' ウィンドウメッセージを処理するためのコールバック関数 Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT ' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。 ' イベントプロシージャの呼び出しを行います。 MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam) End Function '----------------------------------------------------------------------------- ' ここから下は、イベントプロシージャを記述するための領域になります。 Sub MainWnd_CommandButton1_Click() SetDlgItemText(hMainWnd,EditBox1,"CommandButton1_Click!") 'ファイル読込(ab_*.sbp/*.txt) End Sub Sub MainWnd_CommandButton2_Click() SetDlgItemText(hMainWnd,EditBox1,"CommandButton2_Click!") End Sub Sub MainWnd_Destroy() TEST_DestroyObjects() PostQuitMessage(0) End Sub |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |