ごちゃごちゃ説明など良いから、「早々にQSLカード印刷定義ファイルをまとめて公開しろ!」などとという正直なメールも頂きますが、今回はジックリ腰を据えて取り組んでいますので、最終最後で全ファイルを公開したいと思っています。

コピペも良いですが、よりオリジナルなQSLカードを構築するために、それぞれの定義の意味をご理解いただけると本望です。

さて今回は、今まで作り込んできた母屋(元々の定義ファイル)から離れて、1QSO分のデータを処理する、はなれ(サブルーチン的ファイル)の記述に入ります。

はなれのファイルを作った目的は、1枚のQSLカードを印刷するために、同じ処理の繰り返しを何度も書くのが煩わしいからです。

手始めは、「1QSOデータに含まれる情報を、選んで整理する」部分からです。
当局は"1/1"から始まって、QSL発行枚数/QSO回数のように入力画面のRemarks2に書いているが、この行に"1/1"つまりカード発行を前提とした1回目のQSOが有った場合に、引出し(変数)$$R"1st"と記録する。
1stQSOに何らかの記号を付けて記録している方は、その記号を検索すれば良いでしょう。
? RmStr [探す文字列]は、Remarks1またはRemarks2[探す文字列]が含まれているか? を尋ねている。

本来は、Turbo Hamlog の入力画面に出る、「1stQSO」の表示が、何らかの項目変数で利用できると、便利なのですが・・・。比較的単純なデータを項目変数にしない理由が、きっと有るのでしょうね。

? NameHis Nameに書込みがあるか?)は、入力画面の欄に入力画面のHis Nameに何か書いてあるか?を聞く条件命令で、And(両方ともYes)条件で ? DXST!DXでないか?)を聞いている。更にAndは続き、"!$$N"? Space空っぽか?)と聞いている。
つまり、? Name And ? DXST! And ? Space "!$$N" のときだけ、!NAHis Name)に[さん]を足して、$$N名前を一時保管)に入れておけ・・という命令。

;QSOの内容を一時記憶----------------------------------------------------------
? RmStr "1/1" ; Remarksの一部に[1/1]があるか?
#Mov $$R="1st" ; この行に1stQSOがあった場合、$$Rに[1st]を記録
? Name ; His Nameに書込みがあるか?
? DXST! ; DXでないか?
? Space "!$$N" ; 変数$$Nがカラであるか?
#Mov $$N="!NAさん" ; 名前を変数$$Nに記録(国内)
? Name! ; His Nameに書込みがないか?
? DXST! ; DXでないか?
? Space! "!R1$O" ; Remarks1にオペレータの記載はあるか?
? Space "!$$N" ; 変数$$Nがカラであるか?
#Mov $$N="!R1$Oさん" ; オペレータを変数$$Nに記録(国内)
? Name ; His Nameに書込みがあるか?
? DXST ; DXであるか?
? Space "!$$N" ; 変数$$Nがカラであるか?
#Mov $$N="DR OM !NA" ; 名前を変数$$Nに記録(海外)
? Data7 "CW" ; モードはCWであるか?
#Mov $$M="CW" ; CWがあった場合、変数$$Nに[CW]を記録

同じような複数の条件命令で指定された内容を、$$R(1stQSO)、$$N(名前)、
$$M(特定モードの存在)に入れる。
? Data7 [探す文字列] とはマスターデータの7列目のデータが[探す文字列] と一致するか? を尋ねている。

Data1 コールサイン
Data2 日付
Data3 時間
Data11 氏名
Data12 QTH
Data13 Remarks1
Data14 Remarks2

ちなみに、Dataの次の番号は、入力画面の並び順だそうです。

イメージ 1

これで、各QSOデータ行の情報を拾い出すことが出来たが、この最終目的は、QSLカードに添えて書くコメントを、できるだけリアルに近づける為なんです。

では次回は、このはなれで最も肝心カナメのデータの記述にまいります。