一括表示
タイトル
記事No
投稿日
投稿者
: HAMLOGOPENで ファイルがオープンできませんエラー
: 1070
: 2024/08/05(Mon) 08:43:34
: JK1NBV 倉部
JK1NBVです。
Delphiは、初心者です。プログラマー歴40年、
言語は、Z80、Mesa、Perl、C、Java、Lisp, Python等、色々使用しています。
Pythonではアクセスできないというので、Delphiに挑戦しています。
HAMLOGOPENでエラー ファイルがオープンできません。C.MSTが表示されます。
コードは、以下です。
Delphi 12.1 CE版です。
OS: Windows 11 Pro
解決のヒントを頂ければと思います。
よろしくお願いいたします。
program Test1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, Hamlog50;
{$IFDEF MSWINDOWS}
{$ENDIF}
var
version: integer;
//DB Handle
//dbH: TDBFh;
//リターンフラグ
retF: Integer;
tth: TThLog;
dbpath: string;
Pdbpath: PChar;
begin
dbPath:= 'C:\HAMLOG\HAMLOG.hdb';
Writeln('PG: 4');
version := GetThdllVersion();
Writeln(IntToHex(version,6));
WriteLn('StrCopy');
GetMem(Pdbpath, length(dbpath)+1);
StrPCopy(Pdbpath, dbpath);
WriteLn('Open');
retF := HamlogOpen(nil, tth, Pdbpath, 0);
WriteLn('リターン値:' + IntToStr(retf));
if (retf <> SUCCESS) then Exit;
retF:=THW_read(ttH, 1, 0);
WriteLn('リターン値:' + IntToStr(retf));
if (retf <> SUCCESS) then
begin
HamlogClose(tth, 0);
Exit;
end;
WriteLn('Call Sign: ' + tth.qso.Calls);
HamlogClose(tth, 0);
end.
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1071
: 2024/08/05(Mon) 13:41:31
: je6lao長野
こんにちは。
こちらでソースをコピーして試してみました。
同じエラーでした。
HamlogOpenでファイル名をPdbpath(Pchar)で渡していますが、最初の一文字しか読んでいないような反応です。
> JK1NBVです。
>
> Delphiは、初心者です。プログラマー歴40年、
> 言語は、Z80、Mesa、Perl、C、Java、Lisp, Python等、色々使用しています。
> Pythonではアクセスできないというので、Delphiに挑戦しています。
>
> HAMLOGOPENでエラー ファイルがオープンできません。C.MSTが表示されます。
>
> コードは、以下です。
> Delphi 12.1 CE版です。
> OS: Windows 11 Pro
> 解決のヒントを頂ければと思います。
> よろしくお願いいたします。
>
>
>
>
> program Test1;
>
> {$APPTYPE CONSOLE}
>
> {$R *.res}
>
> uses
> System.SysUtils, Hamlog50;
> var
> version: integer;
> retF: Integer;
> tth: TThLog;
> dbpath: string;
> Pdbpath: PChar;
>
> begin
>
> dbPath:= 'C:\HAMLOG\HAMLOG.hdb';
>
> WriteLn('StrCopy');
> GetMem(Pdbpath, length(dbpath)+1);
> StrPCopy(Pdbpath, dbpath);
>
> WriteLn('Open');
> retF := HamlogOpen(nil, tth, Pdbpath, 0);
> WriteLn('リターン値:' + IntToStr(retf));
> if (retf <> SUCCESS) then Exit;
>
> end.
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1072
: 2024/08/05(Mon) 20:16:51
: JK1NBV 倉部
長野様
確認ありがとうございます。
先頭の1文字しかよまれていないということですね。
この相談室で、HAMLOGOPENのファイル名を変数にするにはという質問をみつけて、おなじようにしたのですが、だめでした。
そこで、投稿してみたしだいです。
1バイトであるべきものが、2バイトでコピーされているとかあるのでしょうかね。
もう少し、試してみます。
> こんにちは。
> こちらでソースをコピーして試してみました。
> 同じエラーでした。
>
> HamlogOpenでファイル名をPdbpath(Pchar)で渡していますが、最初の一文字しか読んでいないような反応です。
>
>
> > JK1NBVです。
> >
> > Delphiは、初心者です。プログラマー歴40年、
> > 言語は、Z80、Mesa、Perl、C、Java、Lisp, Python等、色々使用しています。
> > Pythonではアクセスできないというので、Delphiに挑戦しています。
> >
> > HAMLOGOPENでエラー ファイルがオープンできません。C.MSTが表示されます。
> >
> > コードは、以下です。
> > Delphi 12.1 CE版です。
> > OS: Windows 11 Pro
> > 解決のヒントを頂ければと思います。
> > よろしくお願いいたします。
> >
> >
> >
> >
> > program Test1;
> >
> > {$APPTYPE CONSOLE}
> >
> > {$R *.res}
> >
> > uses
> > System.SysUtils, Hamlog50;
> > var
> > version: integer;
> > retF: Integer;
> > tth: TThLog;
> > dbpath: string;
> > Pdbpath: PChar;
> >
> > begin
> >
> > dbPath:= 'C:\HAMLOG\HAMLOG.hdb';
> >
> > WriteLn('StrCopy');
> > GetMem(Pdbpath, length(dbpath)+1);
> > StrPCopy(Pdbpath, dbpath);
> >
> > WriteLn('Open');
> > retF := HamlogOpen(nil, tth, Pdbpath, 0);
> > WriteLn('リターン値:' + IntToStr(retf));
> > if (retf <> SUCCESS) then Exit;
> >
> > end.
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1073
: 2024/08/06(Tue) 07:19:30
: JG1MOU浜田
dbpath: string;
ではなくて、
dbpath: AnsiString;
ではいかがでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1074
: 2024/08/06(Tue) 09:12:45
: JG1MOU浜田
訂正します。
dbpath: string;
Pdbpath: PChar;
ではなくて、
dbpath: AnsiString;
Pdbpath: PAnsiChar;
としてみたらいかがでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1075
: 2024/08/06(Tue) 15:10:42
: JK1NBV 倉部
浜田様
コメントありがとうございます。
いただいた内容で、変数宣言を変更すると、
E2010 'PWideChar'と'PAnsiChar'には互換性がありません。
のエラーが、HAMLOGOPENの行で出力されるようになりました。
> 訂正します。
>
> dbpath: string;
> Pdbpath: PChar;
>
> ではなくて、
>
> dbpath: AnsiString;
> Pdbpath: PAnsiChar;
>
> としてみたらいかがでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1076
: 2024/08/06(Tue) 20:00:29
: JG1MOU浜田
こんな感じではいかがでしょうか?
var
retF: Integer;
dbpath: AnsiString;
begin
dbPath := 'C:\HAMLOG\HAMLOG.hdb';
retF := HamlogOpen(nil, tth, PAnsiChar(dbPath), 0);
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1077
: 2024/08/06(Tue) 22:25:50
: JK1NBV 倉部
浜田様
コンパイルで、以下の2つの警告・エラーが表示され、コンパイルできません。
[dcc32 警告] Test1.dpr(49): W1057 文字列の暗黙のキャスト ('AnsiChar' から 'string')
[dcc32 エラー] Test1.dpr(53): E2010 'PWideChar' と 'PAnsiString' には互換性がありません
> こんな感じではいかがでしょうか?
>
> var
> retF: Integer;
> dbpath: AnsiString;
> begin
> dbPath := 'C:\HAMLOG\HAMLOG.hdb';
> retF := HamlogOpen(nil, tth, PAnsiChar(dbPath), 0);
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1078
: 2024/08/07(Wed) 08:53:07
: JG1MOU浜田
Delphi 12 では、Unicodeが標準だと思います。
PChar は 暗黙のうちに PWideCharと見なされるはずです。
一方、HAMLOGでは昔ながらのShiftJISだったりします。
Hamlog50.pas 内の宣言を書き換える必要があります。
PChar はすべて PAnsiCharに書き換えてください。
> コンパイルで、以下の2つの警告・エラーが表示され、コンパイルできません。
>
> [dcc32 警告] Test1.dpr(49): W1057 文字列の暗黙のキャスト ('AnsiChar' から 'string')
> [dcc32 エラー] Test1.dpr(53): E2010 'PWideChar' と 'PAnsiString' には互換性がありません
>
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1079
: 2024/08/07(Wed) 17:30:12
: JK1NBV 倉部
浜田様
ありがとうございます。
起動して、データを取り込む所はできました。
しかし、DBから取り出された文字コードが勝手に変換されているらしく、?ばかりが表示される状態です。
文字コードの取り扱いを勉強してみます。
> Delphi 12 では、Unicodeが標準だと思います。
> PChar は 暗黙のうちに PWideCharと見なされるはずです。
> 一方、HAMLOGでは昔ながらのShiftJISだったりします。
>
> Hamlog50.pas 内の宣言を書き換える必要があります。
> PChar はすべて PAnsiCharに書き換えてください。
>
>
> > コンパイルで、以下の2つの警告・エラーが表示され、コンパイルできません。
> >
> > [dcc32 警告] Test1.dpr(49): W1057 文字列の暗黙のキャスト ('AnsiChar' から 'string')
> > [dcc32 エラー] Test1.dpr(53): E2010 'PWideChar' と 'PAnsiString' には互換性がありません
> >
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
タイトル
記事No
投稿日
投稿者
: Re: HAMLOGOPENで ファイルがオープンできませんエラー
: 1080
: 2024/08/08(Thu) 08:42:15
: JK1NBV 倉部
浜田様
Hamlog50.pas のChar もAnsiCharに変更したところ、動きました。
ありがとうございました。
> 浜田様
>
> ありがとうございます。
> 起動して、データを取り込む所はできました。
> しかし、DBから取り出された文字コードが勝手に変換されているらしく、?ばかりが表示される状態です。
> 文字コードの取り扱いを勉強してみます。
>
>
> > Delphi 12 では、Unicodeが標準だと思います。
> > PChar は 暗黙のうちに PWideCharと見なされるはずです。
> > 一方、HAMLOGでは昔ながらのShiftJISだったりします。
> >
> > Hamlog50.pas 内の宣言を書き換える必要があります。
> > PChar はすべて PAnsiCharに書き換えてください。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!