HAMLOG プログラム開発室


新着表示
タイトル
記事No
投稿日
投稿者

Re: DOS版の開発続けて下さい?
76
2008/08/18(Mon) 03:58:23
7L2RNT
> > 分割バックアップが無くなりましたが?
> > DOS版は使える様です。
>
> この方法を使うとユーザーリストは正常にヒットしますが、
> セカンドQSO以上がヒットしません?
> ナゼでしょうか?

原因が解りました。以上の作業の後DOS版のハムログでD:データーの保守を行うとセカンドQSO以上がヒットします。これでDOSの今のバージョンのまま上記の作業でNECのDOS版が正常動作確認出来ました。
ありがとうございました。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

SQLでCSV出力ツール
75
2008/08/17(Sun) 11:18:19
JO1SIM 出島
> 出力したCSVから、またいろいろ遊べそうですね。
> そこから発展していくといいですね。

私もこのお盆休みでHAMLOGからSQLでCSVを出力するツールを開発していました。なんとか検索式を入力してCSVを作成出来る様にはなったのですが、スピードがいまひとつです・・・。

公開できるレベルになりましたら公開しようと思います!
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: Hamlog.mst から CFM/WKD 情報の取得
74
2008/08/15(Fri) 08:12:58
je6lao長野
長野です。
ずっと仕事が忙しくて、関ハムも行けませんでした。
ハムフェアも無理みたいです。

> 先日の関ハムで「フリーソフトの作者と語る」の時にHamlog.hdbから
> 直接CSVを出力するソフトを依頼され、そのテストが終わったところです。
> 次がHamlog.MSTからの CFM/WKD情報取得との事で試行錯誤中。
> CSV出力もCFM/WKD情報取得もHamlogに機能があるので本来は
> 不要だとも思われますが「コマンド一発!」で出したいとか。

出力したCSVから、またいろいろ遊べそうですね。
そこから発展していくといいですね。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: Hamlog.mst から CFM/WKD 情報の取得
73
2008/08/04(Mon) 20:27:10
JA2BQX 太田
長野さん、こんばんは。

> ご無沙汰しています。

こちらこそです。 ハムフェアには来られるのかな?

> なにやら楽しいことを始めたようですね。
> アワード用のソフトでしょうか。
> 公開を楽しみにしています。

先日の関ハムで「フリーソフトの作者と語る」の時にHamlog.hdbから
直接CSVを出力するソフトを依頼され、そのテストが終わったところです。
次がHamlog.MSTからの CFM/WKD情報取得との事で試行錯誤中。


> hamlog50.dllは使ったことがないので、お役に立てそうにありません。

DLLを使わない方法は比較的早く出来たのですが ByVal , ByRef 関係は苦手で
先ほどようやく MoveMemory が必要な事に気がつきました。

CSV出力もCFM/WKD情報取得もHamlogに機能があるので本来は
不要だとも思われますが「コマンド一発!」で出したいとか。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: Hamlog.mst から CFM/WKD 情報の取得
72
2008/08/04(Mon) 20:10:06
je6lao長野
太田さん、こんばんは。
ご無沙汰しています。

なにやら楽しいことを始めたようですね。
アワード用のソフトでしょうか。
公開を楽しみにしています。

hamlog50.dllは使ったことがないので、お役に立てそうにありません。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: Hamlog.mst から CFM/WKD 情報の取得
71
2008/08/04(Mon) 20:01:50
JA2BQX 太田
その後のトライで
Call dbf_open(strPath & "Hamlog.mst", db) を使う方は

'Module1.bas に下記を追加
'Declare Sub MoveMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

se = dbf_read(db, ii, ssss) ' OK 01001 北海道阿寒郡 5あ8
tmp = ssss
tmp1 = fNullCut(ssss) ' OK

MoveMemory TJccgMas_, ByVal ssss, Len(TJccgMas_) 'OK 追加
Call Wget_bit(wstr_, TJccgMas_) 'OK 追加

tmp3 = fNullCut(wstr_)

上記にてCFM/WKD 情報の取得が出来る様になりました。
他は模索中.....
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Hamlog.mst から CFM/WKD 情報の取得
70
2008/08/04(Mon) 10:42:44
JA2BQX 太田
こんにちは。
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
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: WM_COPYDATA
69
2008/07/28(Mon) 10:57:45
JA3CLM
> タイマーイベントでこのルーチンを呼び出したらいかがでしょうか。
> 例えば、3秒に1回とか。
> そうすれば、後からハムログを起動しても、リンクできます。
浜田様
ご提案有難う御座います。 DSCWからリンク出来ていないのに呼ぼうとすると、Turbo HamLogを立ち上げを促すメッセージが出るようにしています。また、タイマールーチンを使っていますので、後からでもTurbo HamLogが立ち上がればリンクします。 DSCWユーザーの皆さんからも、便利になりましたとのメールが多く寄せられました。私も使っていますが、バツグンに使いやすくなりました。 MNY Tks!
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: WM_COPYDATA
68
2008/07/27(Sun) 22:02:40
JG1MOU浜田
高木さん、関ハムでは私のとんだ勘違い(落語ミュージアムへの道です)
へのご指摘、有難うございました。
無駄な汗をかかずにすみました。
土地勘が無いというものは恐ろしいものです。hi

> hWnd1 = ::FindWindowW(_T("TThwin"), NULL);

これなんですが、タイマーイベントでこのルーチンを呼び出したらいかがでしょうか。
例えば、3秒に1回とか。
そうすれば、後からハムログを起動しても、リンクできます。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

WM_COPYDATA
67
2008/07/23(Wed) 21:53:09
JA3CLM
浜田さん、森さん。関ハムフェスタではご教授有難う御座いました。
何とか私のDigitalSoundCWからTurbo HamLogへリンクが出来ました。Visual Studio 2005のC++で書いたのを一部書き写します。
まず、文字変換のテーブル[94]の英語(大・小文字)、数字、記号を作りました。
BC[0] = 0x30; BF[0] = _T("0");

BC[1] = 0x31; BF[1] = _T("1");

BC[2] = 0x32; BF[2] = _T("2");

BC[3] = 0x33; BF[3] = _T("3");


BC[4] = 0x34; BF[4] = _T("4");

BC[5] = 0x35; BF[5] = _T("5");

BC[6] = 0x36; BF[6] = _T("6");

BC[7] = 0x37; BF[7] = _T("7");


BC[8] = 0x38; BF[8] = _T("8");

BC[9] = 0x39; BF[9] = _T("9");

BC[10] = 0x3a; BF[10] = _T(":");

BC[11] = 0x3b; BF[11] = _T(";");


BC[12] = 0x3c; BF[12] = _T("<");

BC[13] = 0x3d; BF[13] = _T("=");

BC[14] = 0x3e; BF[14] = _T(">");

BC[15] = 0x3f; BF[15] = _T("?");



BC[16] = 0x40; BF[16] = _T("@");

BC[17] = 0x41; BF[17] = _T("A");

BC[18] = 0x42; BF[18] = _T("B");

BC[19] = 0x43; BF[19] = _T("C");


コールを指定する時
CString Cbuff; // ユニコードの文字変数
char buffs[256];// ASCII用のバッファー
int i, j, len, ok;
int cmmd;
HWND hWnd1;
LRESULT hWnd2; ⇔ ここが違います
COPYDATASTRUCT cds;
CComBSTR
bstrTemp;

hWnd1 = ::FindWindowW(_T("TThwin"), NULL);
if (hWnd1 == 0)
{  AfxMessageBox(_T("HamLogを起動して下さい。"), MB_OK , NULL);
return;}

m_editHisCall.GetWindowTextW(Cbuff);
bstrTemp = Cbuff;
len = bstrTemp.Length();
if (len > 0)
{  for (j = 0; j < len; j++)
{
ok = 0;

for (i = 0; i <= 94; i++)
{
  if (BF[i] == Cbuff.Mid(j,1))
{

buffs[j] = BC[i];


ok++;

  }
}


if (ok == 0) return;
  }
  cmmd = 1;
  cmmd |= 0x10000;
  cmmd |= 0x20000;
  cds.dwData = cmmd;
  cds.cbData = len;
  cds.lpData = &buffs;
  hWnd2 = ::SendMessageW(hWnd1, WM_COPYDATA, (WPARAM)this->m_hWnd, (LPARAM)&cds);}

と書きました。RST CODEなど他の枠への転送も同様に旨く行きましたのでご報告いたします。無論、漢字には対応できていませんが必要ならハムログの入力画面に直接書き込めます。
なお、何処かに記載されているのかわかりませんが、推察でcmmd = 25を試したところ、DXのチェックボックスがONとなり、時間表示もUTCに変える事が出来ました。 Cmmd = 26にすると国内JST対応でした。
これで、重複チェックもバッチリです。 有難う御座いました。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop