C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.86242 の関連記事表示

<< 0 >>
■86242  Re[2]: バイナリデータを読んで、日付などの形にする方法について
□投稿者/ へなちょこ -(2018/01/03(Wed) 14:06:11)
    ご回答ありがとうございます!

    > どういった状況・目的で取り組んでいるのかわかりませんが、C 言語のデータ構造の読み方を独学でやりきるのは難しいでしょうし、質問が続いてしまうので、近場に頼れる人がいるならその人に教えてもらった方が良いと思いますよ。

    おっしゃる通りです。近場に頼れる人がいれば、聞くことができるのですが、残念ながら該当する人がいない状態です.....。そのため、こちらで助けを求めさせていただいている次第です....
    「C 言語のデータ構造の読み方」が分かっていないことが分かりました。ありがとうございます。


    > プログラミングは適当に試してもうまくいきません。
    > このコードでなぜそれができるのか? どういった仕組みなのか? を考察することも必要ですし、時にはいろいろと調べまくってキーワードをなんとか見つけるということも必要かと思います。
    > (VB.NET だけでうまく見つからないなら、C# 側のキーワードでも探してみて、どういったメソッドが使えそうか、探ってみるとかも必要かもしれませんが…)

    おっしゃるとおりです。
    どうやら調べて出てきた情報が理解できないレベルなのが問題だと思います....
    使えそうなメソッドの情報が見つかっても、それをどう使えばよいのかで悩んでしまうので....
    ただ、今までに教えて頂いたことが元になって、色々と学ぶことができました。

    > よって、2 バイトで表現される数値は、以下のような計算で求まります。
    >
    > Dim result As Integer = CInt(1 バイト目) + CInt(2 バイト目) * 256

    ご丁寧に説明していただき、ありがとうございます!
    教えて頂いた通りに試したところ、目的のデータが取得できました!ありがとうございます!

    > 特にアラインメントなどもなく、8 バイトの連続したデータであることが正しいのであれば、BinaryReader.ReadInt64 で Long 型として読み込み、DateTime.FromFileTime メソッドで DateTime 型に変換すれば楽でしょうね。

    こちらもご教授ありがとうございます!
    記載して頂いた情報を元に検索をして調べたのですが、「BinaryReader.ReadInt64 で Long 型として読み込み」というのは出来て、以下のような値を入手できるのは確認しました。

    バイナリデータ
    50 EC 1D 47 C4 70 D2 01 24

    Long型で取得した値
    131291327456210000

    最終的に表示したい実際の日時
    2017/1/17 13:19:05

    このLong型で取得した値を「DateTime.FromFileTime メソッドで DateTime 型に変換」でよいと思うのですが、以下のサイトの「使用例」をそのまま使うと、変な表示になってしまいます。

    https://msdn.microsoft.com/ja-jp/library/system.datetime.fromfiletime(v=vs.110).aspx

    サイトの「使用例」のFunction FileAgeに、引数としてLong型で取得した値をしていすると、以下の結果がでます。
    出力結果→「350.15:21:09.8697527」

    すみませんが、どうすれば「最終的に表示したい実際の日時」の形にできるか教えて頂けないでしょうか?
記事No.86240 のレス /過去ログ148より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -