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

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

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

全過去ログを検索

<< 0 >>
■8670  Re[2]: VB6クラスから.NETへの変換
□投稿者/ Jitta on the way -(2007/10/05(Fri) 19:06:37)
    2007/10/05(Fri) 22:28:03 編集(投稿者)

    No8669 (エキサ さん) に返信
    > 後は同じ処理をする関数に置き換えていけばいいだけ。
    > ODP.NETの仕様を見ながら元ソースと見比べてやればできるはず。
    >

    たぶん、無理
    ADO.NETは、名前こそ同じだけど、ADOと技術が違うから。

    特に「必要です」の箇所。DataSet.Fillなどで、メモリ上に展開してしまって下さい。そのため接続も、できるだけ、メソッドを抜ける前に閉じて下さい。


    追加:::
    > Private G_OraSs As Object 'Oracleセクション
    > Private G_OraDb As Object 'Oracleデータベース
    > Private G_OraRs As Object 'Oracleダイナセット
     この辺は、おそらく不要。ODP.NET をダウンロード&インストールして、リファレンスを読んでください。

    > Private LFieldCount As Long 'SQLのフィールド数
    > Private LRecordCount As Long 'SQLのレコード数
     Structured Query Language(構造化問い合わせ言語)にフィールド数やレコード数はありません。「問い合わせ結果の」ですね。

    > Public Property Get FieldCount() As Long
    > FieldCount = LFieldCount
    > End Property
    これは、こんな感じで。
    Public Property FieldCount() As Long
      Get
        Return データセット.Columns.Count ' 後述
      End Get
    End Property

    > On Error Resume Next 'Error無視
    これは削って、Try 〜 Finally で実装してください。必要なら、Catch もしてください。
    詳しいことは、リファレンスを読んでください。

    > 'Oracleセッション参照作成
    > Set G_OraSs = CreateObject("OracleInProcServer.XOraSession")

    > ■特にこの部分が知りたいです
    >  データの前後を取りたいときなどがあるため、このような方法は必須なんです
    > '指定されたレコードを返す
    「このような方法」は、不要になります。
    ADO.NET は、非接続型のデータベース アクセス コンポーネントです。「非」接続なので、接続していません。接続していないので、ダイナセットのような「カーソルを戻す」操作は不要です。

    では、どうするかというと、ローカルにデータテーブルのコピーができあがっています。そのコピーを操作します。
    詳しくは、ADO.NET に関するリファレンス、DataTable や Datacolumn, DataRow のリファレンスを読んでください。
記事No.8668 のレス /過去ログ20より / 関連記事表示
削除チェック/

■29759  Re[10]: waveファイルの再生キャンセル方法
□投稿者/ .SHO -(2008/12/13(Sat) 17:44:29)
    なんだかいろいろ言って申し訳ないので、mciSendString API を使用した
    MySoundPlayer クラス作りました。このままで望みどおりに動くと思います。
    後は、煮るなり焼くなり好きにして頂いて結構です。
    
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    
    public class MySoundPlayer {
        [DllImport("winmm.dll")]
        extern static int mciSendString( string s, StringBuilder t, int i, int j );
        private string fname;
        public MySoundPlayer( string f ) { fname = f; }
        public void Play() {
            mciSendString( "close s", null, 0, 0 );
            mciSendString( "open \"" + fname + "\" alias s", null, 0, 0 );
            mciSendString( "play s", null, 0, 0 );
        }
        public void Stop() {
            mciSendString( "close s", null, 0, 0 );
        }
        public bool Status {
            get {
                StringBuilder sb = new StringBuilder( 32 );
                mciSendString( "status s mode", sb, sb.Capacity, 0 );
                return sb.ToString() == "playing";
            }
        }
    }
    
    // 使用例
        MySoundPlayer player = new MySoundPlayer( "サウンド.wav" );
    
        private void Button1_Click( object sender, EventArgs e ) {
            if ( player.Status )
                player.Stop();
            else
                player.Play();
        }
    
記事No.29726 のレス / END /過去ログ53より / 関連記事表示
削除チェック/

■81757  Re[2]: WindowsFormのボタンのファイルパス
□投稿者/ ポタージュ -(2016/11/09(Wed) 20:39:38)
    ありがとうございます。
    確かにあれは描画生成ですね。
記事No.81752 のレス / END /過去ログ139より / 関連記事表示
削除チェック/

■87665  Re[2]: プログレスバーの外観を変更する方法
□投稿者/ 半角 -(2018/06/16(Sat) 23:04:36)
    画像をアップしたURLを貼り付けたいのですが
    -海外からの迷惑投稿者と判定されました
    と表示されて書き込むことができません

    ttp://fast-uploader.com/?uploaded=7084713328010
記事No.87663 のレス /過去ログ151より / 関連記事表示
削除チェック/

■87666  Re[3]: プログレスバーの外観を変更する方法
□投稿者/ 半角 -(2018/06/16(Sat) 23:04:57)
    http→ttpにしたらできました
記事No.87663 のレス /過去ログ151より / 関連記事表示
削除チェック/

■91578  Re[3]: EXCEL SUMIF関数をフィルターで動的に使用したい
□投稿者/ 鏡月 -(2019/07/09(Tue) 13:17:57)
    よくわかりませんが下記の数式を挿入したところ、私が行いたかった動作になりました。

    =SUMPRODUCT((SUBTOTAL(3,INDIRECT("D"&ROW($D$5:$D$20))))*($D$5:$D$20="国語")*($E$5:$E$20))
    =SUMPRODUCT((SUBTOTAL(3,INDIRECT("D"&ROW($D$5:$D$20))))*($D$5:$D$20="数学")*($E$5:$E$20))
    =SUMPRODUCT((SUBTOTAL(3,INDIRECT("D"&ROW($D$5:$D$20))))*($D$5:$D$20="英語")*($E$5:$E$20))


    なぜそうなるのか分かりませんのでわかる方がいましたら教えていただけますと幸いです。
記事No.91573 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91582  Re[4]: EXCEL SUMIF関数をフィルターで動的に使用したい
□投稿者/ 魔界の仮面弁士 -(2019/07/09(Tue) 14:11:09)
    No91578 (鏡月 さん) に返信
    > =SUMPRODUCT((SUBTOTAL(3,INDIRECT("D"&ROW($D$5:$D$20))))*($D$5:$D$20="国語")*($E$5:$E$20))
    > =SUMPRODUCT((SUBTOTAL(3,INDIRECT("D"&ROW($D$5:$D$20))))*($D$5:$D$20="数学")*($E$5:$E$20))
    > =SUMPRODUCT((SUBTOTAL(3,INDIRECT("D"&ROW($D$5:$D$20))))*($D$5:$D$20="英語")*($E$5:$E$20))
    
    0: =SUMPRODUCT(
    1:   (
    2:     SUBTOTAL(
    3:       3,
    4:       INDIRECT("D"&ROW($D$5:$D$20))
    5:     )
    6:   )
    7:   *($D$5:$D$20="国語")
    8:   *($E$5:$E$20)
    9: )
    
    ----
    
    2:SUBTOTAL(3, 配列) は、データの個数を求める(COUNTA)に相当。
      ただしオートフィルターで非表示の場合はカウントされないという特性がある。
    
    4:ROW($D$5:$D$20) なら {5; 6; 7; 8; 9; 10; …} という配列になり、
      INDIRECT("D"&ROW($D$5:$D$20)) は「INDIRECT("D5:D20")」に相当するが、
      SUBTOTAL の中で ROW が使われているので、非表示列はカウント対象外となる。
    
     「SUBTOTAL(3, INDIRECT("D"&ROW($D$5:$D$20)))」という式は、
     フィルターがかかっていなければ {1; 1; 1; 1; 1; 1; …} となり、
     [4月以外] なフィルターなら {0; 0; 0; 0; 0; 1; …} となり、
     [数学のみ] なフィルターなら {0; 1; 0; 0; 1; 0; …} となる。
    
    7:($D$5:$D$20="国語") は {TRUE; FALSE; FALSE; TRUE; FALSE; FALSE; … } な配列。
    
    8:($E$5:$E$20) は {10; 20; 30; 40; 50; 60; …} な配列なので、
      7と8を乗じた結果は {10; 0; 0; 40; 0; 0; …} な配列になる。
      そこにさらに 4 を乗じれば、フィルター条件に沿ってない行の値は 0 になる。
    
    0:SUMPRODUCT は、各配列の要素の積をまず計算し、さらにその和を返す関数。
      今回は引数が 1 つだけなので積は求めず、配列内のすべての要素の合計値を求めることになる。
記事No.91573 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91583  Re[5]: EXCEL SUMIF関数をフィルターで動的に使用したい
□投稿者/ 鏡月 -(2019/07/09(Tue) 14:52:24)
    No91582 (魔界の仮面弁士 さん) に返信
    > ■No91578 (鏡月 さん) に返信
    >>=SUMPRODUCT((SUBTOTAL(3,INDIRECT("D"&ROW($D$5:$D$20))))*($D$5:$D$20="国語")*($E$5:$E$20))
    >>=SUMPRODUCT((SUBTOTAL(3,INDIRECT("D"&ROW($D$5:$D$20))))*($D$5:$D$20="数学")*($E$5:$E$20))
    >>=SUMPRODUCT((SUBTOTAL(3,INDIRECT("D"&ROW($D$5:$D$20))))*($D$5:$D$20="英語")*($E$5:$E$20))
    >
    > 0: =SUMPRODUCT(
    > 1: (
    > 2: SUBTOTAL(
    > 3: 3,
    > 4: INDIRECT("D"&ROW($D$5:$D$20))
    > 5: )
    > 6: )
    > 7: *($D$5:$D$20="国語")
    > 8: *($E$5:$E$20)
    > 9: )
    >
    > ----
    >
    > 2:SUBTOTAL(3, 配列) は、データの個数を求める(COUNTA)に相当。
    >   ただしオートフィルターで非表示の場合はカウントされないという特性がある。
    >
    > 4:ROW($D$5:$D$20) なら {5; 6; 7; 8; 9; 10; …} という配列になり、
    >   INDIRECT("D"&ROW($D$5:$D$20)) は「INDIRECT("D5:D20")」に相当するが、
    >   SUBTOTAL の中で ROW が使われているので、非表示列はカウント対象外となる。
    >
    >  「SUBTOTAL(3, INDIRECT("D"&ROW($D$5:$D$20)))」という式は、
    >  フィルターがかかっていなければ {1; 1; 1; 1; 1; 1; …} となり、
    >  [4月以外] なフィルターなら {0; 0; 0; 0; 0; 1; …} となり、
    >  [数学のみ] なフィルターなら {0; 1; 0; 0; 1; 0; …} となる。
    >
    > 7:($D$5:$D$20="国語") は {TRUE; FALSE; FALSE; TRUE; FALSE; FALSE; … } な配列。
    >
    > 8:($E$5:$E$20) は {10; 20; 30; 40; 50; 60; …} な配列なので、
    >   7と8を乗じた結果は {10; 0; 0; 40; 0; 0; …} な配列になる。
    >   そこにさらに 4 を乗じれば、フィルター条件に沿ってない行の値は 0 になる。
    >
    > 0:SUMPRODUCT は、各配列の要素の積をまず計算し、さらにその和を返す関数。
    >   今回は引数が 1 つだけなので積は求めず、配列内のすべての要素の合計値を求めることになる。

    魔界の仮面弁士様

    大変わかりやすい説明ありがとうございます。
    記載していただいた内容での解説がとてもわかりやすい為、今後わからないことがありましたら上記のように展開して部分的に考えたいと思います。

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

■94734  Re[1]: TreeViewで孫ノードを選択した時、親子ノードを取得
□投稿者/ マリ夫 -(2020/05/11(Mon) 09:44:22)
    No94733 (マリ夫 さん) に返信
    > Visualstudio2019、VB.NETでFORMアプリケーションを作成しています。
    > 掲題の通り、TreeViewで孫ノードを選択した時、親子ノードを取得したいのですが、
    > 孫ノードを「クリックで選択」した時、
    >
    > If TreeView1.SelectedNode IsNot Nothing Then
    > Dim strFullPath As String
    >
    > strFullPath = TreeView1.SelectedNode.FullPath
    > End If
    >
    > 上記記述だと、選択するより前にロジックが走り、クリックするより前に選択を行ったノードのパスを取得してしまいます。
    >
    > 孫ノードを「クリックで選択」した時、選択を行った親子ノードの取得方法を教えていただけたらと思います。
    > よろしくお願いします。
    すみません自己解決しました。
    ありがとうございました。
記事No.94733 のレス / END /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -