一括表示

hdbの項目幅 投稿者:JA2BQX 太田 

hdbの項目幅に付いてお願いします。
VB6は大分時代遅れになって来たので最近はVB2010にて作成するようにしています。

そこで、Hamlog50.dll その他でHamlog.hdbから直接、変更可能な項目の幅を取得・設定する関数はありましたでしょうか?
(私の調べた範囲では無いように思います)

「HAMLOGW.INI」からセットされている変更可能な項目幅は取得出来ます。
また、Hamlog.hdbをバイナリーでオープンして項目幅を取得、及び設定する事は出来ますが
Hamlog50.dll にてこれらが関数にて出来ると楽が出来るのですが。

2014/02/14(Fri) 19:41:41  [No.401]


Re: hdbの項目幅 投稿者:JG1MOU浜田 

> そこで、Hamlog50.dll その他でHamlog.hdbから直接、変更可能な項目の幅を取得・設定する関数はありましたでしょうか?
> (私の調べた範囲では無いように思います)

VBの場合、私が書いた構造体の定義がかなりの手抜きなので、これでは
無理のようです。
CやPascalなら取得は可能です。

> また、Hamlog.hdbをバイナリーでオープンして項目幅を取得、及び設定する事は出来ますが
> Hamlog50.dll にてこれらが関数にて出来ると楽が出来るのですが。
>

Hamlog本体では、dbf_create()で項目幅の違うデータゼロのHDBを作成し、
元のQSOデータから1レコードずつコピー&アペンドしてます。
これをVB用に書くのはよくわかりません。

HDBファイルのヘッダには、RMKS1******C****n
といった感じで書かれてます。
nはByte型で54が初期値で、Remarks1の幅です。

データゼロの状態でnを書き換えて、そのデータにアペンドしていく、
というやり方しかありません。
新たな関数を作ったとしても、そのような手続きになります。

・・・とまぁ、このあたりはご存知かと思います。

2014/02/14(Fri) 21:10:09  [No.402]


Re: hdbの項目幅 投稿者:JA2BQX 太田 

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

> HDBファイルのヘッダには、RMKS1******C****n
> といった感じで書かれてます。
> nはByte型で54が初期値で、Remarks1の幅です。

はい、これを読み込み、変更するときは新しい値をセットして..としています。

> 新たな関数を作ったとしても、そのような手続きになります。

そうでしたか、「新たな関数」があればもっと楽に対処できるのかと
横着な事を考えてみたものですから、失礼しました。

2014/02/15(Sat) 05:16:38  [No.403]