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

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

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

全過去ログを検索

<< 0 >>
■72930  Re[3]: 文字列型の時刻を日付型へ変換ができない
□投稿者/ shu -(2014/08/01(Fri) 17:03:29)
    No72927 (nkane さん) に返信
    > 仕様として、00:00〜24:00までの期間での時間数を算出するため、「深夜22時から明朝5時まで」のケースだと例えるなら
    > 8月1日 22:00〜24:00
    > 8月2日 00:00〜05:00
    > という2回に分けて算出します。
    >
    内部情報として
    この例なら
    2014/8/1 22:00:00 〜 2014/8/2 05:00:00
    という情報として保存するようにして
    表示上終了時刻に24:00の表記が必要なのであればそのときに変換して表示されると
    よいのではないでしょうか?
    入力時の24:00を認めるならそのときも入力内容を判断して次の日の00:00として扱うように
    するとよいと思います。
記事No.72912 のレス /過去ログ122より / 関連記事表示
削除チェック/

■83003  Re[2]: ChartのX軸に日・時・分を指定し表示
□投稿者/ KY -(2017/02/25(Sat) 20:07:39)
    No82966 (大谷刑部 さん) に返信
    
    > VB6やVBAでは日付型は内部値は1日を1としたDouble型ですが、
    > .Netでは「日付構造体」のようなので、ToOADateで一端Double型に変換してから、
    > (CDblとかCastでは変換できないようらしい、精度の高いDecimal型には変換すらできない)
    > 15分とか30分を10進法に直した値に丸める関数をつくればいいのではないでしょうか?
    > ただし、Double型は内部は2進数なので、10進法でいう完ぺきな精度はおそらく不可能なので、
    > その点は承知の上実装が必要になります。
    > ToOADateでDouble型に変換の上、Decimalに変換するのはなおダメです。
    > 2進→10進で精度のずれが確実に起こります。
    > 
    
    折角教えて頂いたのですが、なにぶん初心者。
    言われてることがよく分かってないのですが、自動で表示すると適当(正確には適当ではないのですが)に表示するのを0時0分0秒を起点にして、例えば5分間隔にしたい場合は下記のように。
    
              :(中略)
    2016/10/11 10:24:00,1690 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を非表示
    2016/10/11 10:25:00,1680 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を表示
              :(中略)
    2016/10/12 15:58:00,1730 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を非表示
    2016/10/12 15:59:00,1710 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を非表示
    2016/10/12 16:00:00,1750 ----> データーの数値をグラフに表示 & X軸のタイトルには日時を表示
              :(中略)
記事No.82964 のレス /過去ログ142より / 関連記事表示
削除チェック/

■88020  Re[1]: C#でのwaveファイルの波形表示
□投稿者/ 魔界の仮面弁士 -(2018/07/30(Mon) 11:33:35)
    No88011 (akaveco さん) に返信
    > http://tomosoft.jp/design/?p=8985
    > https://tomosoft.jp/design/?p=9023
    > のようなもので、このサイトでの方法はうまくいったのですが、
    
    とりあえず "fmt " チャンクと "data" チャンクだけ調べれば、
    他のチャンクは読み捨ててしまっても良さそうですね。
    
    別案として、こういう実装もありました。
    https://social.msdn.microsoft.com/Forums/en-us/ccff6fd9-3b36-4aa2-a9d4-ba3a56bae88f/how-to-draw-a-wav-chart-graph-with-real-time-postion-indicator?forum=vbgeneral
    
    
    > 対応しているのが8ビット、16ビットのモノラルとステレオのWaveファイルのみになっています。
    > 24ビットや32ビットに対応するにはどのようにすればいいのでしょうか?
    
    switch (waveHeader.BitPerSample) での判定が、
     case 8:
     case 16:
    の 2 つしか無いからでしょうか。
    
    
    8bit なら、bytes 値をそのまま渡していき、
    16bit なら、2 バイト単位で渡していますので、同様にして、
    24bit なら、3 バイト単位で渡すようにし、
    32bit なら、4 バイト単位で渡してみては如何でしょう。
    
    モノラルなら valuesR だけに詰め込み、
    ステレオなら valuesL→R→L→R と交互に詰め込んでください。
    
    ただし、チャンネル数は 2 や 4 ばかりではありません。
    下記の『Sample WAVE files』には、6ch や 8ch の wav ファイルも掲載されていますね。
    http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/
    
    
    レンダリングする際には、
     8bit の場合、1 サンプルあたり 1 byte で -128 〜 +127
    16bit の場合、1 サンプルあたり 2 bytes で -32,768 〜 +32,767
    24bit の場合、1 サンプルあたり 3 bytes で -8,388,608 〜 +8,388,607
    32bit の場合、1 サンプルあたり 4 bytes で -2,147,483,648 〜 +2,147,483,647
    かと思いますが、波形データの解釈の仕方は、waveHeader.FormatID によっても左右されるようです。
    http://www.web-sky.org/program/other/wave.php#format
    
    
    
    参考までに、64 bit なファイル(Windows Media Player 非対応)として、
    http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples.html
    にある M1F1-float64-AFsp.wav (376,112 バイト) を解析してみました。
    
    
    バイナリ解析すると、こんな感じでした。
    自分の見立てだと、何故か 0x5BCDB が余ってしまった…。
    
     [00000-00003] RIFF.ID       : 52,49,46,46 "RIFF"
     [00004-00007] RIFF.Size     : 0005BD28  (376,104 Bytes)
     [00008-0000B] RIFF.FileType : 57,41,56,45 ("WAVE")
    
     [0000C-0000F] Chunk.ID      : 66,6D,74,20 ("fmt ")
     [00010-00013] Chunk.Size    : 00000012 (18 Bytes)
     [00014-00015] フォーマットID: 0003 (IEEE float format)
     [00016-00017] チャンネル数  : 0002 (ステレオ)
     [00018-0001B] 標本化周波数  : 00001F40 (8000 Hz = 8kHz)
     [0001C-0001F] 秒間バイト数  : 0001F400 (128000)
     [00020-00021] ブロックサイズ: 0010 (16 Bytes)
     [00022-00023] 量子化ビット数: 0040 (64bit)
     [00024-00025] 拡張部サイズ  : 00,00 (なし)
    
     [00026-00029] Chunk.ID      : 66,61,63,74 ("fact")
     [0002A-0002D] Chunk.Size    : 00000004 (4 Bytes)
     [0002E-00031] 全サンプル数  : 00005BC5 (23,493)
    
     [00032-00035] Chunk.ID      : 64,61,74,61 ("data")
     [00036-00039] Chunk.Size    : 0005BC50 (375,888 Bytes)
     [0003A-5BC89] 波形データ    : ★★
    
     [5BC8A-5BC5D] Chunk.ID      : 61,66,73,70 ("afsp")
     [5BC5E-5BC91] 00000049      : 00000049 (73 Bytes)
     [5BC92-5BCDA] AFspデータ    : ("AFspdate: 2003-01-30 03:28:50 UTC\0user: kabal@CAPELLA\0program: CopyAudio\0")
    
     [5BCDB-5BCDB] 00
    
     [5BCDC-5BCDF] Chunk.ID      : 4C,49,53,54 ("LIST")
     [5BCE0-5BCE3] Chunk.Size    : 0000004C (76 Bytes)
     [5BCE4-5BCE7] LISTタイプ    : 49,4E,46,4F ("INFO")
     [5BCE8-5BCEB] SubChunk.ID   : 49,43,52,44 ("ICRD")
     [5BCEC-5BCEF] SubChunk.Size : 00000018 (24 Bytes)
     [5BCF0-5BD07] SubChunk.Data : ("2003-01-30 03:28:50 UTC\0")
     [5BD08-5BD0B] Subchunk.ID   : 49,53,46,54 ("ISFT")
     [5BD0C-5BD0F] SubChunk.Size : 0000000A (10 Bytes)
     [5BD10-5BD19] SubChunk.Data : ("CopyAudio\0")
     [5BD1A-5BD1D] Subchunk.ID   : 49,43,4D,54 ("ICMT")
     [5BD0E-5BD20] SubChunk.Size : 0000000E (14 Bytes)
     [5BD22-5BD2F] SubChunk.Data : ("kabal@CAPELLA\0")
記事No.88011 のレス /過去ログ151より / 関連記事表示
削除チェック/

■88027  Re[2]: C#でのwaveファイルの波形表示
□投稿者/ akaveco -(2018/07/30(Mon) 12:41:42)
    No88020 (魔界の仮面弁士 さん) に返信
    
    魔界の仮面弁士さん、返信ありがとうございます。
    
    > switch (waveHeader.BitPerSample) での判定が、
    >  case 8:
    >  case 16:
    > の 2 つしか無いからでしょうか。
    
    この部分にcase 24やcase 32などと追加するのは、なんとなくわかるのですが、
    具体的にどうのように追加すればいいのでしょうか?
    
    試しに
    byte[] data4 = new byte[4];と追加し
    
    switch (waveHeader.BitPerSample)での判定に
    
    case 24:
                                Array.Copy(waveData, frameIndex, data4, 0, 3);
                                work = (int)BitConverter.ToInt32(data4, 0);
                                frameIndex += 3;
                                break;
    case 32:
                                Array.Copy(waveData, frameIndex, data4, 0, 4);
                                work = (int)BitConverter.ToInt32(data4, 0);
                                frameIndex += 4;
                                break;
    
    と追加してみたのですがうまくいきません。
    
    よろしくお願いします。
記事No.88011 のレス /過去ログ151より / 関連記事表示
削除チェック/

■98601  Re[1]: テキストファイルだけ数えたい
□投稿者/ くま -(2021/12/06(Mon) 23:46:43)
    2021/12/06(Mon) 23:47:43 編集(投稿者)

    【C#】フォルダを再帰的に探索して指定拡張子のファイルパスリストを作るメソッド
    https://shirakamisauto.hatenablog.com/entry/2016/03/23/101116

    こちらだと「パス一覧」ですかその部分をファイル数に置き換えるか
    素直にサンプルのコードを実行後リストの件数を取得すればできますよ。

    追記
    失礼しました。C++ですね。

記事No.98600 のレス /過去ログ171より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -