こんにちは。
VB6にて Hamlog.mst から CFM/WKD 情報の取得 のコードを書いています。
Hamlog.mst を直接バイナリーとして読み込んでの取得は
出来るのですが Th505api , HAMLOG50.txt , THDLL2VB.txt を
参照しての取得に手こずっています。
下記の2例のどちらも tmp1 には 5あ8 などの文字列まで取れています。
ssss にもCFM/WKD や緯度・経度情報も含まれている様ですが
16進数なので文字としての認識は出来ません。
Wget_bit(ByVal w As String, wc As TJccgMas) と
VWget_bit(ByVal w As String, p As TThLog) の使い方が
悪いと思われますが、どなたかご指導頂けませんか?
Hamlogにはテストデータを登録しMSTテキスト出力では
下記が書き込まれている事は確認済みです。
01001 北海道阿寒郡 5あ8 W W W W W W W W W W W W W W W W
Dim log As TThLog
Dim db As TDBFh
Dim TJccgMas_ As TJccgMas
Dim se As Long
Dim ssss As String * 512
Dim wstr_ As String * 80
Dim tmp1 As String
Dim tmp3 As String
Call dbf_open(strPath & "Hamlog.mst", db)
sc = dbf_rsize(db) '56 と取得出来る
ii = 3
se = dbf_read(db, ii, ssss) '01001 北海道阿寒郡 5あ8
tmp1 = fNullCut(ssss) ' OK
Call Wget_bit(wstr_, TJccgMas_) 'NG 空白のまま
tmp3 = fNullCut(wstr_)
Call dbf_close(db)
Call Vdbf_open(strPath & "Hamlog.mst", log)
sc = Vdbf_rsize(log) '56
ii = 3
se = Vdbf_read(log, ii, ssss) '01001 北海道阿寒郡 5あ8
tmp1 = fNullCut(ssss) 'OK
Call VWget_bit(wstr_, log) 'NG 空白のまま
tmp3 = fNullCut(wstr_)
Call Vdbf_close(log)
別コードにてですが THDLL2VB.DLL の下記の
17 = HAMLOG.MST のフルパス は取れますが
24〜26の取得にはまだ成功していません。
24 = HAMLOG.MST のデータ(Code, QTH, フラグ,頭文字,エリア)連続
25 = 戻り値に HAMLOG.MST のカレントレコード番号
26 = 戻り値に HAMLOG.MST のレコード件数
Function ThwString(ByVal s As String, Th As TThLog, ByVal n As Integer) As Long