HAMLOG プログラム開発室


新着表示
タイトル
記事No
投稿日
投稿者
参照先
Re: THW_updateについてお教えください
140
2009/08/10(Mon) 00:45:23
JO1SIM 出島

吉田さん
みなさんこんにちは。

VBで開発してないので良くはわかりませんが…

同じデータでUpdateではなくAppendで追加したらどうなるでしょうか?

問題がUpdateの中にあるのか、それとも更新しようとしているデータに有るのか分かるかもしれません。VB6で動いていて2008だとダメとなると、データの構造の違い等に問題があるような気がしますね。

VBとしての言語は良く似てても、動かす仕組みはだいぶ違うはずなので…。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: THW_updateについてお教えください
139
2009/08/09(Sun) 23:05:04
jr1cpb/稲村
吉田さんのコードをコピーして実行してみました。
同じ症状です。。。。コードをコピーしてるのだから当たり前?ですね。Hi
でも、更新出来るデータと出来ないデータがあるというのが解せないです。
お手上げです。(^。^;)
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: THW_updateについてお教えください
138
2009/08/09(Sun) 16:35:48
JA1RNR 吉田康太郎
JA2BQX 太田さん

こんにちは、暑い日が続きます。

> VB2008でテストしていますが吉田さんと同じ症状になり
> まだ解決していません。

同じ症状ですか。解決方法がありましたらご教示いただければ幸いです。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: THW_updateについてお教えください
137
2009/08/09(Sun) 13:54:29
JA2BQX 太田

こんにちは。
VB6ではupdateは上手く動作しています。
VB2008でテストしていますが吉田さんと同じ症状になり
まだ解決していません。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

THW_updateについてお教えください
136
2009/08/08(Sat) 13:44:49
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
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: THW_appendについてご教示ください
135
2009/07/30(Thu) 06:21:24
JA2BQX 太田

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

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

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

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

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

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

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

ええ、ここが難解でしてだいぶ苦労しています。
VB6のType、特に固定長変数の宣言などはまごつきました。
Hamlog関係のサンプル集のホームページなどがあるとFBなのですが。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: THW_appendについてご教示ください
134
2009/07/29(Wed) 20:56:45
jr1cpb/稲村
すみません、横から失礼します。
VB6のプロジェクトをVB.NET2008で開くとアップグレードウィザードが
走ります。
HAMLOG50.BASモジュールもウィザードが自動変換してくれます。
引数の値渡し/参照渡しなども変換してくれます。
ただし、マーシャリング属性に関する記述の部分はアップグレードウォ
ーニングが出るだけで変換されませんでしたので、HELPなどを参照して
自分で修正する必要がありました。
VB6からのアップグレードならば、ウィザードを使うと工数削減できる
かもしれません。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: THW_appendについてご教示ください
133
2009/07/29(Wed) 20:39:57
JA1RNR 吉田康太郎
JA2BQX 太田さん、こんばんは。

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

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

季節柄お身体、お大切にお過ごしください。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: THW_appendについてご教示ください
132
2009/07/29(Wed) 19:14:23
JA2BQX 太田

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になりました。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: THW_appendについてご教示ください
131
2009/07/29(Wed) 15:00:30
JA2BQX 太田

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

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

今日は体調が悪いので後日、TRYさせていただきます。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop