« 上野沼(うえのぬま,LA茨城県-21) | トップページ | AH7CとのAM交信 by モービルホイップ »

2014年2月22日 (土)

AstRenum-Turbo HAMLOG(ハムログ)のQSL印刷定義のラベルをリナンバーする

現在のバージョン:1.1.6 (更新日:2014/03/09 19:00)

 Turbo HAMLOG/WinのQSL印刷定義の分岐命令等で使用されるラベル番号をリナンバーするプログラムです.昔のMS-BASIC系BASICにあった,RENUM 命令の機能を実現します.

最新版:(ver 1.1.6 2014/03/09 19:00) ラベル行の構文がおかしい場合に,正常にリナンバーできなかった不具合を修正.ラベル行の構文がおかしい場合には,"*Goto", "*Print", "*Line" となっている場合には修正,その他は";Ilegal Label--"としてコメントアウトした.(更新履歴はこちら

 HAMLOG-Winは,交信中からQSLカードの印刷まで,常に快適に使えます.Thanks to JG1MOU 浜田さん!

 ところで,QSLカードの印刷は,QSL印刷定義のスクリプトを編集することで,好きなようにデザインして印刷することができます.

 QSL印刷定義のスクリプトの条件分岐は,#GOTO *1000 で,ラベルは,*1000 のように,"*(アスタリクス)"+番号で付けます.ちょうど大昔のMS-BASIC(系の一連のBASIC)の感じです.

 QSL印刷定義のスクリプトのラベルも,大昔のMS-BASICの感覚で,最初はステップ10で書き始めても,そのうちあれやこれや条件を追加していくと,やがて,手でリナンバーする必要がでてきます.

 幸い,QSL印刷定義のスクリプトでは,昔のBASICのように,番号が(行番号で)シーケンシャルに並んでいる必要は無いので,さらに追加する時に簡単には,たとえば,*1001 ならば *10010に,桁を変えてしまえばいいわけですが,そのうち,ぐちゃぐちゃになって,訳がわからなくなってしまいます.いわゆるスパゲッティ状態(はプログラムの構成の問題ですが,番号だけでもかなり印象が違う).

 こんな時,MS-BASIC系のBASICには,RNUM 1000, 10 とかの番号を振り直す命令がありました.

 QSL印刷定義のスクリプト編集画面には,残念ながら,BASICのRENUMに対応する機能は無いようです(見つけられていないだけかも).

 そこで,VisualBasic で,QSL印刷定義のスクリプトに対して,このRENUM命令を実行するプログラムを作成してみました.

 それぞれ,立ち上げた時の画面,Rnumするファイルを読み込んだ時,Renumberを実行し終わった時の画面です.

■ AstRenum1.1.6 のダウンロード ■

○ パッケージ版 AstRenum116.exe  2.005MB

○ 実行ファイルのみ:AstRenum116_exe.cab  22KB

 上のリンクをクリックして、任意の場所に保存し,解凍後,既存のAstRenum.exe を上書きして下さい.

 

■ 変換元ファイルの入力
 ・ファイル名は,フルパス+ファイル名を入力します.[参照...]ボタンから選択して下さい.
 ・[参照...]ボタンを押すと,ファイル選択ダイアログが出ますので,そこから選んで下さい.
 ・ダイアログからファイルを選択すると,出力先のファイル名は,自動的にファイル名の最後に"_new"が付加されます.
 ・変換元ファイルの内容は,中央の画面のように,表示されます.

■ [Renumberの詳細]を設定
 開始番号を入力し,ステップを選択してください.デフォルトでは,開始番号は1000,ステップは10になっています.

■ [Renumber]ボタンを押して,Renumberを実行
 ・[Renumber]ボタンを押すと,Renumberの詳細で設定した条件で,ラベルを変換します.
 ・ラベルは,"*"+数字の行を,上から順番に変換していきます.
 ・#GOTO に続くラベル名も,もちろん変更されます.
 ・変更結果は,変換先ファイル名で指定したファイルに書き出されます.
 ・変換元のファイルは,読み込み時に使用されます.変換先のファイル名に同じ名前を指定しない限り,変更されることは無いはずです.

■ 作成されるクロスレファレンスファイル("変換後のファイル名.xref")
 ・行番号付きの変換済みのスクリプト本体のリストと,ラベル番号のクロスレファレンスリストから構成されています.
 ・変換済みのリストは,左から,行番号,分岐命令等でラベル使われている場合には" * ",行本体 からなっています.ラベルの前には空白行が入ります.
 ・クロスレファレンスリストは,ラベル行の行番号,ラベル,分岐命令等で使用されている行番号からなっています.
 ・クロスレファレンスファイルの見本は,こちらです.

■ AstRenum1.1.6 のダウンロード ■

○ パッケージ版 AstRenum116.exe  2.005MB

○ 実行ファイルのみ:AstRenum116_exe.cab  22KB

 上のリンクをクリックして、任意の場所に保存し,解凍後,既存のAstRenum.exe を上書きして下さい.

■ おもな更新履歴 ■

(ver 1.1.6 2014/03/09 19:00) ラベル行の構文がおかしい場合に,正常にリナンバーできなかった不具合を修正.ラベル行の構文がおかしい場合には,"*Goto", "*Print", "*Line" となっている場合には修正,その他は";Ilegal Label--"としてコメントアウトした.
(ver 1.1.5a 2014/02/24 21:40) すでに1回変換をかけた後,さらに変換したいファイルをダイアログで開く時,キャンセルを押すと,リストが消え,リスト上でマウスを動かすとエラーになる不具合を修正.キャンセルの場合には,何も操作をしなかったのと同じ動作にした.
(ver 1.1.5 2014/02/23 15:26) Renumberボタンを押した時に左側から右側にリストをコピーする際,2回目以降に,既にあるリストをクリアせずにコピーしていたことで発生していた不具合を修正.変換中にウィンドウが一旦他のウィンドウに隠れ,再度前面にした時に,画面が真っ白になるのを回避.変換操作中は値の変更やボタン操作等をできないようにした.その他,各種メッセージをステータスバーに表示するようにした.Tnx 銅子さん
(ver 1.1.3 2014/02/22 13:42) インストール先を”C:\Hamlog\AstRenum\"に変更し,ウィンドウの位置やサイズ,各種設定を保存するiniファイルも,そこに置くことにしました.
(ver 1.1.1 2014/02/22 11:22) 一度変換を行なった後,そのまま新しいファイルを読み込むと,前の変更前のファイルが残ったまま新しいファイルのデータを追加していたバグを修正.また,リナンバーしたファイルと同時に,ラベルのクロスレファレンスファイルを書き出すようにした.
(ver 1.1.0 2014/02/21 22:38) リスト表示を,変換前と変換後の2つを横に並べ,同時スクロールするようにしました.さらに,上/下のラベル(ラベル行のみ/分岐命令も含む)にジャンプできるようにしました.Tnx JA2BQX 太田さん
(ver 1.0.6 2014/02/21 16:55) ラベルが重複している時に,重複しないようにラベル番号を振り直すことを可能にしました.
(ver 1.0.5 2014/02/21 14:00) ラベル行(*1000)に,ラベルの後,スペース等やコメントがある場合も,スペース/コメントはそのままラベルのみ入れ替えるようにしましたが,一部できないものがあったので,全角スペースを含め,想定内文字の場合であれば入れ替えられるようにしました.
(ver.1.0.1, 2014/02/20 21:00) QSL印刷設定ファイルの改行コードが CR+LF,CRのみ,LFのみのいずれでも正常に読み込めるようににしました.
(ver.1.0.0, 2014/02/20 02:02 初版公開

《2014/03/09更新》

« 上野沼(うえのぬま,LA茨城県-21) | トップページ | AH7CとのAM交信 by モービルホイップ »

自作ソフトウェア」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« 上野沼(うえのぬま,LA茨城県-21) | トップページ | AH7CとのAM交信 by モービルホイップ »

フォト
2020年4月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ