HAMLOG開発室は、HAMLOGに関連したプログラム開発(C、パスカル、VB言語等、又はDLL)についての
専用BBSです。プログラム言語に関する投稿以外は通常のHAMLOG相談室に投稿して下さい。
HAMLOG開発室BBS

THW_updateについてお教えください 投稿者:JA1RNR 吉田康太郎

例によってVB2008でHamlog50.DLLとThdll2Vb.dllを使って、Hamlogデータの修正プログラムを作成しています。

今回のプログラムは、THW_updateでHamlogQSOデータを修正しようとするものですが、つぎのように一部のデータ項目が修正できません。

1.修正できない項目は、Hamlogのデータ項目名で表すと

My, Freq, Mode, Name, QTH, Remarks1, Remarks2の7項目です。

上記の各項目は、TextBox上でデータが変更されているにもかかわらず、データに変更がないときと同じ動作です。THW_updateの戻り値は SUCCESS = 0 です。修正時の確認画面は表示されません。

2.他のデータ項目の、Call, Date, Time, His, Code, G.L, QSLの7項目は正しく修正できます。修正時の確認画面も表示されます。


このプログラムのどこに問題がありましょうか。ご教示いただければ幸いです。


このプログラムでは、あらかじめHamlogから読み込んだデータをTextBoxに入れ、TextBoxのデータを修正した後、下のプログラムでHamlogQSOデータを修正しようとしています。

===================問題のプログラム============================

Dim DataTbl(14) As String  ' 各QSOデータを格納
Dim th As TThLog
Dim th2 As TThLog
Dim Rno As Integer

Rno = Val(Me.TextBox15.Text) ' 修正対象データ番号を入力する

Hamlog_Update(th, th2, DataTbl, Rno) ' 修正プログラムの呼び出し

-----------------修正プログラム----------------------------------

Private Sub Hamlog_Update(ByRef u_th As TThLog, ByRef u_th2 As TThLog, ByVal u_DataTbl() As String, ByVal u_Rno As Integer)

Dim rd, sd As Integer, UpdateQsoData As String

rd = THW_read(u_th, u_Rno, 0)

u_th2.Qso = u_th.Qso ' 修正前のデータを格納

Text_to_Table_Set(u_DataTbl) ' 修正後のTextBoxのデータを配列に格納

For d As Integer = 0 To 14
UpdateQsoData = u_DataTbl(d)
SetThBuffer(u_th, UpdateQsoData, d)
Next

sd = THW_update(u_th, u_th2, u_Rno, IsQSOdata, 0)
If sd = SUCCESS Then
Me.Label3.Text = "データ番号 " & u_Rno & " 修正完了"
Else
Me.Label3.Text = "修正に失敗しました。"
End If

End Sub
---------------ここまでが修正プログラムです-----------------

以下の部分は上で使っているSubとFunctionの定義です

Public Function Item_Edit(ByVal Rec As String) As String

Dim RLeng As Integer
Dim Item As String

Rec = Rec.Replace(Chr(0), " ")
Rec = Rec.Trim
RLeng = Rec.Length
Item = Rec.Substring(0, RLeng)

Return Item

End Function

Public Sub Text_to_Table_Set(ByVal DataTbl() As String)

Array.Clear(DataTbl, 0, 16)
DataTbl(0) = Item_Edit(Me.TextBox1.Text.ToUpper)
DataTbl(1) = Item_Edit(Me.TextBox1.Text.ToUpper)
DataTbl(2) = Item_Edit(Me.TextBox2.Text.ToUpper)
DataTbl(3) = Item_Edit(Me.TextBox3.Text.ToUpper)
DataTbl(4) = Item_Edit(Me.TextBox4.Text.ToUpper)
DataTbl(5) = Item_Edit(Me.TextBox5.Text.ToUpper)
DataTbl(6) = Item_Edit(Me.TextBox6.Text.ToUpper)
DataTbl(7) = Item_Edit(Me.TextBox7.Text.ToUpper)
DataTbl(8) = Item_Edit(Me.TextBox8.Text.ToUpper)
DataTbl(9) = Item_Edit(Me.TextBox9.Text.ToUpper)
DataTbl(10) = Item_Edit(Me.TextBox10.Text.ToUpper)
DataTbl(11) = Item_Edit(Me.TextBox11.Text)
DataTbl(12) = Item_Edit(Me.TextBox12.Text)
DataTbl(13) = Item_Edit(Me.TextBox13.Text)
DataTbl(14) = Item_Edit(Me.TextBox14.Text)

End Sub

2009/08/08(Sat) 13:44:49  [No.136]


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)
- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
Call 名前 ※必須
文字色
Eメール
タイトル sage
URL
メッセージ 手動改行 強制改行 図表モード
メッセージには上記と同じURLを書き込まないで下さい
画像File  (130kBまで)
暗証キー (英数字で8文字以内)
投稿キー (投稿時 投稿キー を入力してください)
プレビュー