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

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

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

全過去ログを検索

<< 0 >>
■43455  Re[4]: 関数呼出時のスタックの挙動に関して
□投稿者/ DD. -(2009/11/10(Tue) 23:14:17)
    774RRさん、検証有難う御座いました。
    また自分でも検証してみたいと思います。
記事No.43368 のレス / END /過去ログ74より / 関連記事表示
削除チェック/

■51274  Re[10]: WebDAVを使ったファイルアップロードについて
□投稿者/ 初心者 -(2010/06/30(Wed) 10:47:34)
    れい様、ちゃっぴ様、たくさんの助言ありがとうございました!
    またお世話になるかもしれませんが、動かしながら試行錯誤してみます。

    No51223 (ちゃっぴ さん) に返信
    >>お勧めの書籍かサイトがあれば教えていただけないでしょうか?
    >
    > 無いですね。MSDN を頼りにひたすら debug を繰り返すしか。
    >
    > やる気がある方のようなのでもう一つ tips をば。
    >
    > 方法 : ネットワーク トレースを構成する
    > http://msdn.microsoft.com/en-us/library/ty48b824.aspx
    >
    > 開発時はこれを configuation file に加えておくと良いです。
    > Network trace を取得できるので開発時に大いに役立つでしょう。特に SSL 利用時。
    > Release 時には comment out してね。
記事No.51100 のレス / END /過去ログ86より / 関連記事表示
削除チェック/

■60115  Re[1]: 大容量ファイルのHTTPアップロード
□投稿者/ なちゃ -(2011/06/21(Tue) 11:48:58)
    まっとうなレンジ転送は、レスポンス方向にしか出来なかったと思いますので、プログラムで明示的に分割送信する事になるんじゃないですかね…
    そういうやり方なら、ある意味どうとでも実装できますが。
記事No.60112 のレス /過去ログ101より / 関連記事表示
削除チェック/

■86245  Re[4]: バイナリデータを読んで、日付などの形にする方法について
□投稿者/ へなちょこ -(2018/01/03(Wed) 17:39:13)
    ご回答ありがとうございます。

    > ・TimeSpan 型って何かご存知ですか? →知らない状態であればこの機会に調べてください。

    すみません、知りませんでした....
    調べてみたのですが、「1時間」といった時間の表現をするものと捕らえました。

    > ・使用例の FileAge 関数はどういった処理をしていると考えていますか?読み解けませんか?
    > ・"FileAge" という英語から来ている命名から意味を想像できませんか?

    TimeSpan 型のことを考えて使用例を見たところ、以下の事をしていると考えました。
    ・「現在の時間」と「ファイル作成時間」を取得後、その差を計算して、ファイルが出来てからどれくらい経過しているかを求めている。

    間違っているでしょうか?

    上記のことを参考に、以下のようにコードを書いたら、うまく日時情報が取れました!
    *「getTime」には、Long型にした8バイトの情報が入っています。

    Public Function TimeCal(ByVal getTime As Long) As System.DateTime
    Try
    Dim Time1 As System.DateTime
    Time1 = System.DateTime.FromFileTime(getTime)
    Return Time1
    Catch exp As ArgumentOutOfRangeException
    Throw
    End Try
    End Function

    コード1行目の最後が「System.TimeSpan」だったため、「350.15:21:09.8697527」のような時間が出たのだと思っています。
    これで大丈夫だと思っているのですが、おかしな所はありますでしょうか?
記事No.86240 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86247  Re[5]: バイナリデータを読んで、日付などの形にする方法について
□投稿者/ Azulean -(2018/01/03(Wed) 19:36:41)
    No86245 (へなちょこ さん) に返信
    >>・TimeSpan 型って何かご存知ですか? →知らない状態であればこの機会に調べてください。
    >
    > 調べてみたのですが、「1時間」といった時間の表現をするものと捕らえました。

    >>・使用例の FileAge 関数はどういった処理をしていると考えていますか?読み解けませんか?
    >>・"FileAge" という英語から来ている命名から意味を想像できませんか?
    >
    > TimeSpan 型のことを考えて使用例を見たところ、以下の事をしていると考えました。
    > ・「現在の時間」と「ファイル作成時間」を取得後、その差を計算して、ファイルが出来てからどれくらい経過しているかを求めている。
    >
    > 間違っているでしょうか?

    合っています。
    age っていうのが年齢とか、そういった意味のある言葉なので、ファイルが作られてからの経過時間という意図で命名しているのでしょうね。


    > コード1行目の最後が「System.TimeSpan」だったため、「350.15:21:09.8697527」のような時間が出たのだと思っています。

    それだけではないですよね?
    Return するものを変更したはずです。

    その「1行目の最後」は「戻り値の型」を示すだけであり、実際にはメソッド(関数)の中の「何を返す(戻す)か?」の部分が重要です。
    そちらを書き落としていると、認識のずれにつながるので、差分を書き漏らさないようにしましょう。
記事No.86240 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86252  Re[5]: バイナリデータを読んで、日付などの形にする方法について
□投稿者/ 魔界の仮面弁士 -(2018/01/05(Fri) 16:27:34)
    No86245 (へなちょこ さん) に返信
    > Public Function TimeCal(ByVal getTime As Long) As System.DateTime
    >  Try
    >   Dim Time1 As System.DateTime
    >   Time1 = System.DateTime.FromFileTime(getTime)
    >   Return Time1
    >  Catch exp As ArgumentOutOfRangeException
    >   Throw
    >  End Try
    > End Function

    動作的には間違いというわけではないのですが、
    このコードについて、少しだけ指摘させてください。


    実は今回提示頂いたコードというのは、実質的には下記と同等です。

     Public Function TimeCal(ByVal getTime As Long) As Date
      Return Date.FromFileTime(getTime)
     End Function


    参考にしたコードを真似ただけでしょうから、上記の書き方になるのも致し方ないのですが、
    実際に使う際には、必ずしも例外処理は必要ではありませんし、今回のように
    わざわざ Function 化するほどの必要性も無さそうです。

    ゆえに今回は、Function を作らずとも FromFileTime メソッドを直接呼び出すだけで十分かと思います。

      'x = TimeCal(longValue)
      x = Date.FromFileTime(longValue)



    以下、上記の書き換えについての補足。


    > Public Function TimeCal(ByVal getTime As Long) As System.DateTime

    As Long と As System.Int64 は同じ意味ですし、
    As Date と AS System.DateTime も同じ意味です。

    Integer や Long や Date は、Visual Basic の組み込み型(プリミティブな型)で、
    Int32 や Int64 や DateTime は、.NET Framework で用意された共通言語ランタイムの型名です。

    どちらを使っても良いのですが、引数が前者表記、戻り値が後者表記で
    混在されているのが気にかかりました。

    意図的に使い分けているのであれば良いのですが、もしかしたら
    Date 型の存在をご存じなかったのでは…ということで紹介しておきます。


    左側が .NET Framework で対応するデータ型で、
    右側が Visual Basic が組み込みで持っているデータ型の名前です。
    ここでは右側(組み込み型)のアルファベット順に列挙してみました。

    System.Boolean 構造体  / Boolean 型 (ブール型)
    System.Byte 構造体  / Byte 型 (バイト型)
    System.Char 構造体  / Char 型 (文字型)
    System.DateTime 構造体 / Date 型 (日付型)
    System.Decimal 構造体  / Decimal 型 (10 進型)
    System.Double 構造体  / Double 型 (倍精度浮動小数点数型)
    System.Int32 構造体  / Integer 型 (整数型)
    System.Int64 構造体  / Long 型 (長整数型)
    System.Object クラス  / Object 型 (オブジェクト型)
    System.SByte 構造体  / SByte 型
    System.Int16 構造体  / Short 型
    System.Single 構造体  / Short 型 (単精度浮動小数点型)
    System.String クラス  / String 型 (文字列型)
    System.UInt32 構造体  / UInteger 型
    System.UInt64 構造体  / ULong 型
    System.UInt16 構造体  / UShort 型



    これを踏まえた上で、
    >   Dim Time1 As System.DateTime
    >   Time1 = System.DateTime.FromFileTime(getTime)
    >   Return Time1
    で使われている System.DateTime を Date 表記に書き換えると、
       Dim Time1 As Date
       Time1 = Date.FromFileTime(getTime)
       Return Time1
    のようになります。(ただの別名表記なので、どちらでも結果は一緒です)

    また、必ずしも変換結果を変数に受け取る必要は無いので、上記 3 行を
      Return Date.FromFileTime(getTime)
    と一行にまとめて書くこともできます。コーディングに慣れるまでは
    変数に一度受けておいた方が、処理の流れを追いやすいかも知れませんけれどね。


    >  Catch exp As ArgumentOutOfRangeException
    >   Throw
    >  End Try
    今回使用した FromFileTime メソッドが ArgumentOutOfRangeException の例外を発生させるケースは
     ・引数の値が小さすぎる(getTime が 0 未満だった場合)
     ・引数の値が大きすぎる(getTime が 2650467744000000000 以上の場合)
    に限られます。

    つまり、最小値と最大値は下記の範囲になります。
     Dim 最小値 = Date.FromFileTime(0L)
     Dim 最大値 = Date.FromFileTime(2_650_467_743_999_999_999L)


    この範囲を超えた場合は、例外処理によって Catch 句に入るわけですが、
    先のコードでは、Catch 句で「単に Throw しているだけ」なので、
    実際にはこのような例外処理は、ほとんど意味が無かったりします。
記事No.86240 のレス / END /過去ログ148より / 関連記事表示
削除チェック/

■95502  Re[2]: Excelでユーザーフォームからセル行を上書きしたい
□投稿者/ あい -(2020/08/08(Sat) 13:54:13)
    No95500 (魔界の仮面弁士 さん) に返信
    > 2020/08/08(Sat) 13:39:07 編集(投稿者)
    >
    > ■No95499 (あい さん) に返信
    >>B2セル行に既に入っている文字を上書きさせたいです。
    >
    > B2 に書き込みたいのなら、
    >  [B2].Value = ID0
    > あるいは
    >  Sheet1.[B2].Value = ID0
    > などとすれば良いのでは。
    >
    >
    >>With Cells(Rows.Count, 2).End(xlUp)
    > これは、最終行の B 列 上で [End] キーを押してから [↑] を押したときの操作ですよね。
    > http://officetanaka.net/excel/vba/tips/tips130.htm
    >
    > B列のほぼすべてに値が入っていて、最終行だけが空欄なら、
    > Cells(Rows.Count, 2) は B1048576 を指し示し、
    > Cells(Rows.Count, 2).End(xlUp) は B1048575 となります。
    >
    > B列がほぼ未入力で、B3 と B7 にだけ文字が入っていれば、
    > Cells(Rows.Count, 2).End(xlUp) は B1 や B3 ではなく、B7 を示します。
    >
    > B1〜B3 が空欄で、B4〜B1048576 すべてに何かデータが入力されていれば、
    > Cells(Rows.Count, 2).End(xlUp) は B4 を示します。



    >Range("B2")に値を書けばよいと思います。
    >提示されたものがどんな動きになるかわかるようなサンプルを以下に貼り付けます。

    >Sub Test()
    > Range("B2") = 199

    > For i = 1 To 10
    > With Cells(Rows.Count, 3).End(xlUp)
    > With .Offset(1, 0)
    > .Value = i
    > Cells(i, 5) = .Address
    > End With
    > End With
    > Next


    >End Sub

    >魔界の仮面弁士さん、あい さん
    ご回答ありがとうございます。
    参考になったコードで無事出来ました。

    ありがとうございました。
記事No.95499 のレス / END /過去ログ165より / 関連記事表示
削除チェック/

■100448  Re[4]: 配列を行単位で並び替える方法
□投稿者/ 魔界の仮面弁士 -(2022/08/12(Fri) 15:37:25)
    No100445 (魔界の仮面弁士) に追記
    > string[] records = File.ReadLines(csvFilePath, Encoding.GetEncoding("Shift_JIS")).Skip(2).ToArray();
    > に変更すれば先頭 2 行が読み飛ばされるので、
    データ部(3行目以降)だけが欲しい場合は No100445 で良いですが、
    もしも先頭 2 行を残しつつ、3 行目以降をソートしたい場合はこんな感じ。


    // 全データ。先頭 2 行はヘッダー部です。
    string[] records = File.ReadAllLines(csvFilePath, Encoding.GetEncoding("Shift_JIS"));

    // 先頭 2 行を残して、3 行目以降を 2 列目, 3 列目にてソートする場合
    string[] sorted = records.Take(2).Concat(from r in records.Skip(2) let c = r.Split(',') orderby c[1], c[2] select r).ToArray();
記事No.100440 のレス /過去ログ175より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -