掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
浮動小数の変換 (ID:47627)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
どなたかご教授下さい。 現在OSC(OpenSoundControll)を使用した音響機器制御ソフトを作成中ですが、 浮動小数の変換が解決出来ずに難義しております。 procedure TForm1.Dat_Conv(Dat_OSC:string); var OSC_Array: array [1..4] of Byte; J:integer; ST:Single; begin ST:=StrToFloat(Dat_OSC); for J:= 1 to 4 do begin OSC_Array[J] :=0; Move(ST, OSC_Array, 4);end; OSC_Data:= chr(OSC_Array[4]) + chr(OSC_Array[3]) + chr(OSC_Array[2]) + chr(OSC_Array[1]); Memo1.Lines.Add('OSC_Data= ' + Format('$%.2x $%.2x $%.2x $%.2x', [OSC_Array[4], OSC_Array[3], OSC_Array[2], OSC_Array[1]])); end; 上記コードで変換したデータを機器に送信していますが、旧Delphi(ver5)では全く問題なく動作しています。 ところがモバイルアプリのためDelphi XE8 に同コードを書き換えたところ Data 0.49 〜 0.24 を送信すると0.18になってしまいます。 画面上には正常な計算値が表示されるのですが、WireShark(トラフィック監視)で送信Dataを見ますと送信された値は0.18となっており、機器も0.18の値を受信しています。 原因は浮動小数の変換なのだろうと思うのですが解決方法が見当たらずHelpファイルと格闘しながら毎日途方にくれています。どなたかご教授を! ちなみに OSはWin8/Win7/WinXP 言語ソフトは Delphi5 / DelphiXE8 / Delphi10(トライアル) / C++Builder5 / C++Builder10(トライアル) 全て試しましたが結果は同じでした。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.