一括表示

THW_appendについてご教示ください 投稿者:JA1RNR 吉田康太郎 

いつも初歩的な質問で申し訳ありません。

VB2008で、Hamlog50.DLLとTHDLL2VB.DLLを使いHamlogとMixW相互のデータ変換プログラムを作りました。
ここで初歩的な疑問が生じました。

下記のようにTHW_appendの第二引数にQSOデータへの書き込みを指定しましたが、このほかにマスターデータへの書き込みも行う必要がありましょうか。ご教示いただければ幸いです。

****************************************************
Public Const IsQSOdata = 16

For d As Integer = 0 To 14
QSOData = DataTbl(d)
メニュー.SetThBuffer(th, QSOData, d)
Next

sd = メニュー.THW_append(th, メニュー.IsQSOdata, 0)

****************************************************

2009/07/28(Tue) 16:28:50  [No.124]


こんにちは。

> 下記のようにTHW_appendの第二引数にQSOデータへの書き込みを指定しましたが、このほかにマスターデータへの書き込みも行う必要がありましょうか。ご教示いただければ幸いです。

ここで言う「マスターデータへの書き込み」とは具体的には何でしょうか?
QSOデータがマスターデータに影響するのはWKD/CFMの情報ですが、この事でしょうか?  (他にもあるのかな??)

「QSOデータへの書き込み」を行った後で、HDBをどの様に利用するのかにも係わって来るように思います。

THW_append しただけでは DB_append の様に「インデックスファイルは更新されない」かどうかの記述が HAMLOG50.txt にはありませんね。

2009/07/28(Tue) 16:50:01  [No.125]


Re: THW_appendについてご教示ください 投稿者:JA1RNR 吉田康太郎 

JA2BQX 太田さん、

こんにちは。

Hamlogのデータ構造の基本がわからずに質問をして申し訳ありません。

私は、Hamlogの入力ウインドウから手で交信データを入力したことと同様のことができればよいだけです。
要領を得なくてすみません。


> ここで言う「マスターデータへの書き込み」とは具体的には何でしょうか?
> QSOデータがマスターデータに影響するのはWKD/CFMの情報ですが、この事でしょうか?  (他にもあるのかな??)
>
> 「QSOデータへの書き込み」を行った後で、HDBをどの様に利用するのかにも係わって来るように思います。
>
> THW_append しただけでは DB_append の様に「インデックスファイルは更新されない」かどうかの記述が HAMLOG50.txt にはありませんね。

2009/07/28(Tue) 17:21:03  [No.126]


> 私は、Hamlogの入力ウインドウから手で交信データを入力したことと同様のことができればよいだけです。

私もQSOデータ追加のコーディングをテスト中ですがまだエラーが出ています。
VB6では上手く行っているのですがVB2008は不慣れで..。。

失礼しました。
WKD/CFMはHamlogのメニューの「表示」「Wkd/Cfm記入表示」を実行して反映されるようですね。

ですので通常はQSOデータの書き込みだけで良いのでしょう。

2009/07/28(Tue) 18:03:12  [No.127]


Re: THW_appendについてご教示ください 投稿者:JA1RNR 吉田康太郎 

JA2BQX 太田さん
こんばんは。

早速ご教示有り難うございました。
QSOデータの書き込みだけで、いろいろテストしてみます。
>
> ですので通常はQSOデータの書き込みだけで良いのでしょう。

2009/07/28(Tue) 18:08:04  [No.128]


こんばんは。 
VB2008はまだ分からない事ばかりなので済みませんが貴局の投稿
コーディングで幾つか教えて下さい。

> For d As Integer = 0 To 14
> QSOData = DataTbl(d)
> メニュー.SetThBuffer(th, QSOData, d)
> Next
>
> sd = メニュー.THW_append(th, メニュー.IsQSOdata, 0)

1. 
書き込もうとしているQSOデータはどうなっていますか?

> For d As Integer = 0 To 14

...ですが THDLL2VB.txt の Sub SetThBuffer によれば

0,1 = Callsignをコピーする場合
2 = Date
...途中省略...
14 = Remarks2
16 = DXフラグ
...です。


16 = DXフラグ がセットされていないようですが
DX局でもHamlogのデータ入力ウインドウのDXのチェックを付
けない処理と言う事でしょうか。


2.
> QSOData = DataTbl(d)

QSOData  と  DataTbl(d) の宣言部分を教えて下さい。

3.
> メニュー.SetThBuffer(th, QSOData, d)
...の様に  「メニュー.」がついているのは?

4.
SetThBuffer 、 THW_append の宣言部分を教えて下さい。

2009/07/28(Tue) 19:39:35  [No.129]


Re: THW_appendについてご教示ください 投稿者:JA1RNR 吉田康太郎 

JA2BQX 太田さん、おはようございます。

お問合せについて、下記のようにご返事申し上げます。


>1.書き込もうとしているQSOデータはどうなっていますか?
>   16 = DXフラグ がセットされていないようですが

私は、DXフラグ、CQフラグを利用していませんのでこれらの書き込みをしていません。

>2.QSOData  と  DataTbl(d) の宣言部分を教えて下さい。

Dim QSOData As String
Dim DataTbl(14) As String

このように単純に宣言しています。
DataTbl(d)に書き込むデータは、有効桁数分だけです。

>3.「メニュー.」がついているのは?

class名「メニュー」にこれらの宣言をしたためです。

>4.SetThBuffer 、 THW_append の宣言部分を教えて下さい。

Declare Sub SetThBuffer Lib "Thdll2Vb.dll" (ByRef p As TThLog, ByVal s As String, ByVal n As Integer)

Declare Function THW_append Lib "Hamlog50.dll" (ByRef Th As TThLog, ByVal f As Integer, ByRef m As Integer) As Integer

THW_appendの第三引数は、Hamlog50.DLL仕様書に「変数の参照渡しである。」とありましたので、 ByRefとしています。最初私はここでつまずきました。

2009/07/29(Wed) 11:00:04  [No.130]


JA1RNR 吉田さん、ありがとうございます。

> お問合せについて、下記のようにご返事申し上げます。

今日は体調が悪いので後日、TRYさせていただきます。

2009/07/29(Wed) 15:00:30  [No.131]


JA1RNR 吉田さん、こんばんは。

> >3.「メニュー.」がついているのは?
> class名「メニュー」にこれらの宣言をしたためです。

私はこれら Hamlog50.DLLとTHDLL2VB.DLL の宣言は Hamlog50.vb に書いていますので
THW_append(log, IsQSOdata, 0)
...のような記述にしています。
VB2008のメニューの「プロジェクト」「モジュールの追加]で「Module1.vb」を「Hamlog50.vb」に変えています。


> Declare Function THW_append Lib "Hamlog50.dll" (ByRef Th As TThLog, ByVal f As Integer, ByRef m As Integer) As Integer
> THW_appendの第三引数は、Hamlog50.DLL仕様書に「変数の参照渡しである。」とありましたので、 ByRefとしています。最初私はここでつまずきました。

私のエラーの原因はまさにここでした。
ByVal m As Integer としていましたが ByRef m As Integer に修正してOKになりました。

2009/07/29(Wed) 19:14:23  [No.132]


Re: THW_appendについてご教示ください 投稿者:JA1RNR 吉田康太郎 

JA2BQX 太田さん、こんばんは。

> ByVal m As Integer としていましたが ByRef m As Integer に修正してOKになりました。

プログラムの方は順調のようでよかったですね。

季節柄お身体、お大切にお過ごしください。

2009/07/29(Wed) 20:39:57  [No.133]


すみません、横から失礼します。
VB6のプロジェクトをVB.NET2008で開くとアップグレードウィザードが
走ります。
HAMLOG50.BASモジュールもウィザードが自動変換してくれます。
引数の値渡し/参照渡しなども変換してくれます。
ただし、マーシャリング属性に関する記述の部分はアップグレードウォ
ーニングが出るだけで変換されませんでしたので、HELPなどを参照して
自分で修正する必要がありました。
VB6からのアップグレードならば、ウィザードを使うと工数削減できる
かもしれません。

2009/07/29(Wed) 20:56:45  [No.134]


jr1cpb 稲村さん、こんにちは。コメントありがとうございます。

前回の dbf_rcount の時のサンプルは大変助かりました。 MNI TNX

> VB6のプロジェクトをVB.NET2008で開くとアップグレードウィザードが
> 走ります。

はい、時々は使用しています。

> HAMLOG50.BASモジュールもウィザードが自動変換してくれます。
> 引数の値渡し/参照渡しなども変換してくれます。

次回はもっと注意して比較してみます。

> ただし、マーシャリング属性に関する記述の部分はアップグレードウォ
> ーニングが出るだけで変換されませんでしたので、HELPなどを参照して
> 自分で修正する必要がありました。

ええ、ここが難解でしてだいぶ苦労しています。
VB6のType、特に固定長変数の宣言などはまごつきました。
Hamlog関係のサンプル集のホームページなどがあるとFBなのですが。

2009/07/30(Thu) 06:21:24  [No.135]