こんにちは。 何時もお世話になります。
VB2010にて日付けを指定してレコード番号を取得しようとしています。
ソースの一部抜粋が下記です。
Declare Function MakeIndex Lib "Hamlog50.dll" (ByVal s As String, ByVal k As String, ByVal i As String) As int32
Declare Function idx_open Lib "Hamlog50.dll" (ByVal s As String, ByRef p As TIDXh) As Int32
Declare Sub idx_close Lib "Hamlog50.dll" (ByRef p As TIDXh)
Declare Function idx_search Lib "Hamlog50.dll" (ByRef p As TIDXh, ByVal s As String, ByVal l As Int32) As Int32
MakeIndex(hamlogpath, "DATE", "C:\Hamlog\Date.Ndx")
Ret = idx_open("C:\Hamlog\Date.Ndx", THindx)
search_date = "15/02/03"
rec_no_1st = idx_search(THindx, search_date, 8)
Call idx_close(THindx)
idx_search 関数の使い方ですが下記の ? には幾つを指定すれば良いでしょうか?
rec_no_1st = idx_search(THindx, search_date, ?)
Th524ap の Hamlog50.txt にて下記の様に記載されている len です。
search_date = "15/02/03" なら 8 で良いと思いますが、今は山シャックなのでテスト出来ない...。
コールサインの時には ゼロ で上手くサーチ出来ましたが。
MakeIndex(hamlogpath, "TIME", "C:\Hamlog\Time.Ndx") の時には
"12:34U" なら 6 で良いでしょうか。
引 数:idx
dBASE互換インデックスファイルの構造体
key
検索するキー。THW_seek()と同様。
len
検索するキーの長さを指定する。コールサインの文字列が全部一致するキーを検索する場合は6。
プリフィックスだけ一致の場合は3。ゼロの場合は、key が通常のヌルターミネート文字列であるとして検索する