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

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

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

全過去ログを検索

<< 0 >>
■3569  Re[7]: ピクチャボックス上にラベルをオーナードローしたいです
□投稿者/ 渋木宏明(ひどり) -(2007/05/15(Tue) 19:08:15)
>
    > ラベルを使いたい理由の1つとしまして、コンテキストをつけたいということがあります。

    同じことです。

    テキストを表示するべき座標と文字列が分かっていれば、その文字列に対応するコンテキストメニューを表示するのは特別難しいことではありません。

    2,3件のラベルでそこまで管理するのはいかにも面倒ですが、十数件あるいはそれ以上の文字列を扱う可能性があるなら、独自の管理を検討するべきと思います。
記事No.3554 のレス /過去ログ12より / 関連記事表示
削除チェック/

■36373  Re[2]: Javaで指定日から数日後の日付を出したい。
□投稿者/ トッチー -(2009/05/28(Thu) 07:37:45)
    アドバイスありがとうございます。

    しかしながら、仕様上、値を代入して行わなければなりません。


    あと、前回書くのを忘れましたが、
    System.out.println(diff.getCalculateDay(cal , 4) ); //(B)できればDate型では

    java.util.GregorianCalendar[time=1243809223609,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Tokyo",offset=32400000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2009,MONTH=5,WEEK_OF_YEAR=23,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=152,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=7,HOUR_OF_DAY=7,MINUTE=33,SECOND=43,MILLISECOND=609,ZONE_OFFSET=32400000,DST_OFFSET=0]

    が表示されてしまいました。

    >(バグというよりは、よくJavaを知らない人が書いてはまることがある
     という表現のほうが近いかも)

    元はVBプログラマーの人間です。
    Javaは本格的にやりだしてまだ1ヶ月です(恥)。
記事No.36367 のレス /過去ログ63より / 関連記事表示
削除チェック/

■85089  Re[1]: 文字列を数値に高速で変換する方法
□投稿者/ 魔界の仮面弁士 -(2017/09/11(Mon) 11:15:54)
    No85086 (ANA さん) に返信
    > そのため、何かの関数のラッパーになっているのではないかと思います。
    すべて何某かのラッパーではあるので、どこまでを指しているのかにもよりますが:

    > Dim Num as Single = CSng("3.345235235235534543634") '14.3秒
    > CType("3.345235235235534543634", Single) '14.1秒
    コンパイル後は、CSng(s) と CType(s, Single) は完全に等価ですので、
    この 0.2 秒の差は測定誤差ということになりますね。


    > Single.Parse("3.345235235235534543634") '2.0秒
    > Convert.ToSingle("3.345235235235534543634") '2.0秒
    この 2 つは別のメソッド呼び出しとしてコンパイルされますが、
    処理速度が変わらないのは、どちらも内部的には
     If value Is Nothing Then
      Return 0.0F
     Else
      Return Single.Parse(value, CultureInfo.CurrentCulture)
     End If
    に相当する同一の手順で処理されるためです。


    一応、呼び出し回数を軽減させるために、
     Dim ci As CultureInfo = CultureInfo.CurrentCulture
     Dim ns As NumberStyles = NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite Or NumberStyles.AllowLeadingSign Or NumberStyles.AllowDecimalPoint Or NumberStyles.AllowThousands Or NumberStyles.AllowExponent
     For n = 1 To 繰り返し回数
      Dim Num As Single = Single.Parse("3.345235235235534543634", ns, ci)
     Next
    とすることはできます。もっとも、軽減したとしても、微々たる差でしょうから、
    可読性を落としてまで実装する価値は無さそうですけれども。


    > Dim Num as Single = CSng("3.345235235235534543634") '14.3秒
    > Dim Num as Single = CSng(Val("3.345235235235534543634")) '1.4秒

    CSng は「現在のカルチャー」に応じてその振る舞いを変化させますが、
    Val はカルチャーを考慮せず、常に同じ動作になります。
    そのため、Val を使った方が処理効率が早くなっています。

    しかも後者の場合、実際には「VB の CSng 関数」が呼ばれることはありません。
    Val 関数の戻り値が Double 型ということで、後者は VB の CSng ではなく、
    直接「MSIL の 0x6b 命令」すなわち「conv.r4」に渡される形にコンパイルされます。


    しかしながら、Double 型をいったん経由することになる以上は、
    必ずしも、両者の結果が同一になるとは限りません。
    たとえば "-4.4E+38" という文字列を処理した場合、
    前者は OverflowException を発生させますが、
    後者は Single.NegativeInfinity な値として格納されます。


    > このVal関数というのは、VB6以前の古いフォーマットだと思います。
    > VB.NETの方法を使ったもっと美しいコードがあれば教えてください。

    個人的には、Val の利用を否定はしないですけれどね。
    Microsoft.VisualBasic.Compatibility.VB6 名前空間に
    所属しているわけでもないですし、今回のように
    明確な意図があって使っているのならなおのこと。
    # 意図的に Val を選択したことについては、コメント等で触れておいて欲しいですが。

    ちなみに、
     ・Val では、小数点記号として "." しか認めない。CSng や Single.Parse はカルチャーを考慮する。
     ・Val("123D-2") は 1.23 を返すが、CSng("123D-2") や Single.Parse("123D-2") は例外を発する。
     ・全角の "(123)"を渡すと、Val は 0.0 を返し、CSngは -123.0 を返し、Single.Parse は例外を発する。
    などの違いがあります。



    > Dim Num as Single = CSng("3.345235235235534543634") '14.3秒
    本題からは外れますが、そもそも Single 型で、
    "3.3452352…" な値をとることはなかったりします。

    3.345235235235534543634 を指定しても、内部値的には
    3.3452353477478027343750 相当の値にしかならないためです。

    ちなみに Single 精度では、下記のような非連続の近似値として格納されます。
     0b01000000010101100001100001010100 → 3.3452348709106445312500 相当(3.34523487)
     0b01000000010101100001100001010101 → 3.3452351093292236328125 相当(3.345235)
     0b01000000010101100001100001010110 → 3.3452353477478027343750 相当(3.34523535)
     0b01000000010101100001100001010111 → 3.3452355861663818359375 相当(3.34523559)
     0b01000000010101100001100001011000 → 3.3452358245849609375000 相当(3.34523582)

    ※左がバイナリ表現(二進小数化する前の値)、右が十進小数化後の値とラウンドトリップ表現。
記事No.85086 のレス /過去ログ145より / 関連記事表示
削除チェック/

■92236  Re[4]: CD-Rへ同名フォルダ書き込み時のエラー
□投稿者/ YAMA -(2019/09/04(Wed) 11:39:58)
    No92235 (とっちゃん さん) に返信
    >
    > Image Mastering API(CD/DVDを作るためのAPIセット)のリファレンスルートを張っておきますね。
    > 自分では、ISOファイル作成しか行ったことがないので、CD-R などの書き込みオンリー系の機能は使ったことがないので、細かくチェックしたことはありませんが
    > なにか乗ってるかもしれません。
    >
    > https://docs.microsoft.com/en-us/windows/win32/imapi/portal
    >
    >

    情報ありがとうございます。
    https://docs.microsoft.com/en-us/windows/win32/api/imapi2fs/nf-imapi2fs-ifsidirectoryitem-addtree

    翻訳しながら見てみましたが、IMAPI_E_DUP_NAME  名前がすでに存在します。
    このエラーですね。
    対策はわからず・・
    ちなみにCD-RWでも結果は同じでした。
    参考までに質問ですが、ISOファイルの場合は一度作ったものに対して同名フォルダを追記ということはされることはないのでしょうか?毎回新規に作り直すのであれば発生しないのかもしれませんが・・。
記事No.92232 のレス /過去ログ159より / 関連記事表示
削除チェック/

■92238  Re[5]: CD-Rへ同名フォルダ書き込み時のエラー
□投稿者/ とっちゃん -(2019/09/04(Wed) 13:01:03)
    No92236 (YAMA さん) に返信
    > 参考までに質問ですが、ISOファイルの場合は一度作ったものに対して同名フォルダを追記ということはされることはないのでしょうか?毎回新規に作り直すのであれば発生しないのかもしれませんが・・。
    >
    ISOは、メディアイメージとしては、CD-ROM/DVD-ROM とリードオンリー形式にするので、毎回新規作成です。
    書き換え処理ができる構成(CD-R など)は試したことがないのでわかりません。
記事No.92232 のレス /過去ログ159より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -