喫茶XRAYトップページ

[スレッド全体
]

[10364] Cardinalの型変換返信 削除
2016/9/9 (金) 01:12:13 ny
こんにちは、知識がなく困っています。

文字列変数sに"4294967295"が入っています。
これを整数型のCardinal変数vに型変換して代入したいのですが、
v=strtoint(s);
ではできませんでした。こんな時どんな方法で型変換するのでしょうか?

どなたか教えてください。

[10366] Re:Cardinalの型変換返信 削除
2016/9/9 (金) 11:00:17 Mr.XRAY
▼ nyさん

> 文字列変数sに"4294967295"が入っています。
> これを整数型のCardinal変数vに型変換して代入したいのですが、


これ,Cardinal の最大値ですよね.
Integer の正の最大値を超えていると StrToInt は失敗するようです.
今思いつくのは以下しかありません.

>v=strtoint(s);
>ではできませんでした。


当然できません.v:=strtoint(s); ですね.
Delphi の代入は = ではなくて := です.コロンが必要です (^^;)
もしかして,C++, C#, VB ?
それとも,私の真似をして誤字脱字の類 ?

動作確認は Windows 7 U64(SP1) + Delphi XE(UP1) Pro です.

procedure TForm1.Button1Click(Sender: TObject);
var
  LText     : string;
  LCardinal : Cardinal;
begin
  LText := '4294967295';
  LCardinal := Cardinal(StrToInt64(LText));

  LText := IntToStr(LCardinal);
  MessageBox(Handle, PChar(LText), '結果', MB_ICONINFORMATION);
end;



[10367] Re2:Cardinalの型変換返信 削除
2016/9/9 (金) 12:04:22 Mr.XRAY
> それとも,私の真似をして誤字脱字の類 ?

何故

>v=strtoint(s);

という部分だけでなく,プロジェクトを新規作成して Button1Click の
全コードを書いて掲載するかと言いますと,誤字脱字の防止の意味もあります.
それに,もし動作を確認したい方がいればコピペで確認できます.
実行結果の図を掲載しているのは,本当にやったんだよ.
ということを証明するためでございます.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82