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

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

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

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>
■4883  Re[10]: SHFreeMallocの使い方
□投稿者/ 魔界の仮面弁士 -(2007/06/27(Wed) 22:32:56)
    2007/06/27(Wed) 23:03:00 編集(投稿者)

    No4881 (倉田 有大 さん) に返信
    > でもPathに何もはいってきませんでした。
    > うーん、次はどうしようかな。

    string ではなく、StringBuilder 型で受け取る必要があるのでは。

    http://msdn.microsoft.com/library/ja/cpguide/html/cpconDefaultMarshalingForStrings.asp
    http://msdn2.microsoft.com/ja-jp/library/s9ts558h%28VS.80%29.aspx
    》 String クラスと StringBuilder クラスのマーシャリングの動作は似ています。
    》 主な違いは、文字列は変更不可であるのに対して、StringBuilder バッファの内容は
    》 呼び出し先によって変更でき、呼び出し元へとコピーできることです。


    試してはいませんが、たぶん、こんな感じかな、と。

    [DllImport("shell32.dll")]
    static extern bool SHGetSpecialFolderPath(
    IntPtr hwndOwner, [Out] StringBuilder lpszPath, int nFolder, bool fCreate);

    --------------
    <追記>

    ……って、指定しているのは CSIDL_NETWORK(マイ ネットワーク) でしたか。

    マイ ネットワーク フォルダは、物理ディレクトリではなく、仮想ディレクトリなので
    パスは得られないと思いますけれども。

    無理に対応するとすれば、
     if(nFolder==ShellSpecialFolder.CSIDL_NETWORK)
      return "::{208D2C60-3AEA-1069-A2D7-08002B30309D}";
    みたいにするとか、かな。
記事No.4741 のレス /過去ログ14より / 関連記事表示
削除チェック/

■4930  Re[2]: VC#_StreamReader.ReadLineについて
□投稿者/ CHOBI -(2007/06/29(Fri) 08:17:39)
    よねKEN さん、kazukiさんお返事ありがとうございます。
    原因は私の勘違いでした。(掲示板汚してすみませんでした)
    何故、私が”実際の行数の倍”と認識したかというと
    最初の”行数カウント”の後に”中身表示”を実行させておりました。
    行数カウント --> 128行
    中身表示 ------> 64行
    と表示されたためです。
    単純に"中身表示"は "sr.ReadLine()"を2回実行していただけでした。

    何分昨日より "VS 2005"いじり始めた初心者で、ツールの使い方に気を取られて
    気が付きませんでした。どうかご勘弁下さい。


    //中身を表示するメソッド
    public void IndicateLine()
    {
    if (!File.Exists(filename))
    {
    Console.WriteLine("{0}は存在しません", filename);
    }
    else
    {
    FileStream fs = File.Open(filename, FileMode.Open, FileAccess.Read);
    StreamReader sr = new StreamReader(fs);
    while (sr.ReadLine() != null)
    {
    ++cnt;
    Console.WriteLine("{0}:{1}", cnt, sr.ReadLine());
    }
    fs.Close();
記事No.4920 のレス /過去ログ14より / 関連記事表示
削除チェック/

■5112  windouwsアプリで処理中画面表示
□投稿者/ ゆっきー -(2007/07/04(Wed) 17:19:35)

    分類:[VB.NET (Windows)] 

    環境[VS2005]

    お世話になっております。
    VB.netでWindowsアプリの画面を作成しています。
    メインとなる画面で時間がかかる処理をしている間
    処理中画面を表示しようとしています。

    ボタンクリック(処理開始)

    処理中画面表示(メイン画面では時間がかかる処理を処理中)

    処理中画面を消す(処理終了)

    という流れです。

    処理中画面ではプログレスバーをタイマーで適当に動かします。
    (処理が終了とともに100%にするなどはしません)

    下記コードで試したのですが
    処理開始で処理中画面を表示し、
    処理終了で処理中画面を削除はできたのですが、
    処理中画面のプログレスバーが動作してくれません。

    ---------------------------------------------------
    メイン画面での処理
    Buttonのclickイベント(

    '処理中画面表示
    dim subForm as new FormSub
    subForm.Show()

    '時間がかかる処理(仮にスリープ)
    System.Threading.Thread.Sleep(5000)

    '処理中画面消す
    subForm.Close()
    )

    FormSubでの処理
    FormのLoadイベント(

    ProgressBar.Minimum = 0
    ProgressBar.Maximum = 100
    Timer.Enabled = true
    )
    TimerのTickイベント(

    'プログレスバーを適当に動かす
    gValue += 1
    if gValue = ProgressBar.Maximum then
    gValue = 0
    end if
    Me.ProgressBar.Value = gValue
    )
    ----------------------------------------------------

    時間のかかる処理をスリープから
    メッセージボックスで"テスト"と表示する処理に変えたら、
    処理中画面のプログレスバーが動きました。

    -----------------------------------------------------
    メイン画面での処理
    Buttonのclickイベント(

    '処理中画面表示
    dim subForm as new FormSub
    subForm.Show()

    '時間がかかる処理
    MsgBox("テスト",MsgBoxStyle.OkOnly,"テスト")

    '処理中画面消す
    subForm.Close()
    )
    ------------------------------------------------------

    何かお分かりになられましたらご教授ください。
    お願いいたします。
親記事 /過去ログ15より / 関連記事表示
削除チェック/

■5396  Re[1]: C#とPHPでSOAP通信
□投稿者/ いしだ -(2007/07/12(Thu) 11:53:28)
>
    こんにちは。

    WSDLを自分で作成してみてはどうでしょう?

    詳しく読んでいませんが、以下が参考になりそうです。

    codezine
    PHP5でSOAPを用いたブックマークサービスを作成する(wsdlを含むサンプルあり)
    http://codezine.jp/a/article/aid/199.aspx

    wsdlの詳しい説明は、

    稚内北星学園
    Webサービスfor Java 入門 ---- SOAP-RPCからJAX-RPCへ----
    http://www.wakhok.ac.jp/biblion.html#J2EE

    等が参考になるのではないでしょうか?
    昔、これをみて複雑な型を扱うwsdlを作成した事があります。
記事No.5395 のレス /過去ログ15より / 関連記事表示
削除チェック/

■5367  アクセスしなければ値が確定しない
□投稿者/ Gustaf -(2007/07/11(Wed) 14:29:28)

    分類:[VB.NET] 

    2007/07/13(Fri) 17:27:30 編集(投稿者)

    開発環境:VS2005
    言語  :VB.NET

    指定したフォルダ内の変更や作成されたファイルを取得し、複製する処理を作成しています。
    動作はするようになったのですが、起動時の動作が不可解なので質問させてください。

    起動時にファイルリストを取得しているはずなのに
    ・起動時にファイルリストを取得
    ・対象フォルダのファイルを変更
    ・ボタンを押して新たにファイルリストを取得

    以上の処理が終わった後、
    変更前と変更後のファイルリストを比較しても内容が同じままです。
    どうやら起動時にファイルリストがきちんと取れていないようなのですが、
    コメント化してある値のチェックを行うことで意図した値が取得できます。

    どうにも原因がつかめないので、どなたかアドバイスをお願いします。

    ' 以下ソース
    Imports System.IO
    Public Class Form1
    ' ファイルリスト格納用
    Private FileList As New List(Of FileInfo)
    Private Const strTargetFolder = "D:\Data\FolderWatch\1\"

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    ' 既存のファイルリストを取得
    FileList.AddRange(New DirectoryInfo(strTargetFolder).GetFiles)
    ' ------------------------------------------
    ' ここを有効にすることで正しく動作する
    ' 既存のファイルリストを出力
    'For Each f As FileInfo In FileList
    ' Debug.WriteLine(f.Name & ":" & f.Length)
    'Next
    ' ------------------------------------------
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' 最新のファイルリストを取得
    Dim NewFileList As New List(Of FileInfo)
    NewFileList.AddRange(New DirectoryInfo(strTargetFolder).GetFiles)
    ' 前回のファイルリストを出力
    For Each f As FileInfo In FileList
    Debug.WriteLine(f.Name & ":" & f.Length)
    Next
    ' 最新のファイルリストを出力
    For Each f As FileInfo In NewFileList
    Debug.WriteLine(f.Name & ":" & f.Length)
    Next
    ' データ更新
    FileList = NewFileList
    End Sub
    End Class
親記事 /過去ログ15より / 関連記事表示
削除チェック/

■5646  Re[3]: クラスのインスタンスについて
□投稿者/ よねKEN -(2007/07/19(Thu) 14:16:20)
>
    2007/07/19(Thu) 14:37:11 編集(投稿者)

    > 1.宣言のデータ型について
    > Dim SS As Icon に記された「Icon」はデータ型との事ですが、どこを見て(あるいは何を転記して)Icon と記述したので
    > しょうか。クラス名を記述しあのでしょうか。逆に言いますとIcona や Iconb と記述しいても問題ないのでしょうか。

    Asの後ろに書けるものは何でどういうルールで決まるのか?ということですよね?

    厳密さはおいといて簡単に言えば、
    (1) VBで用意されている型(Integer、Stringなど)
    (2) 自分で定義したクラスのクラス名
    (3) .NET Frameworkで用意されているクラスライブラリのクラス名
    のどれかを指定できると考えてもらえばよいかと思います。

    ※上記でクラスと書いているものは構造体やインタフェースなども含まれますが、
     とりあえずクラス名だという理解でも今は十分だと思います。

    ---- もう少し詳細に ----
    Iconは指定できます。IconaやIconbはモンタさんがIconaやIconbといった名前のクラスを
    独自に定義していなければ指定できません。
    ここからはまどかさんの説明への補足です。

    Iconを何故指定できるか?という前に押さえておきたいポイントがあります。
    ここでのIconという指定はSystem.Drawing.Iconクラスを指定したものと見なされます。
    つまり、Dim SS As System.Drawing.Iconと表記していること同じ意味としてVBは解釈します。
    そして、このことに対するまどかさんの説明が

    >プロジェクトのプロパティ→参照タブの下のインポートされた名前空間でチェックされているもの
    >または
    >Importsステートメントで指定された名前空間のパスは
    >省略することができます。というかそこから探し出してくれます。

    の部分です。
    (1)「プロジェクトのプロパティ→参照タブの下のインポートされた名前空間」という説明部分は、
    VisualStudio(Express Editionでも同様)での設定箇所についての指摘です。
    (2)「Importsステートメントで指定された名前空間のパス」はプログラム上で
    「Imports 〜」という記述をしてあった場合についての指摘です。

    (1)の設定にたいていの場合、System、System.Drawing、System.Windows.Formsなどが登録されています。
    このような設定がある場合、「As Icon」という指定を見つけたら、VBはそれを
    Icon、System.Icon、System.Drawing.Icon、System.Windows.Forms.Iconのどれかだろうと解釈します。

    そして、Icon、System.Icon、System.Drawing.Icon、System.Windows.Forms.Iconのどれが指定されているのか?
    をVBが判断するために、次に行うのはこれらのクラスがどこに存在するか探します。

    VBは"Icon"クラスの定義を探すために、
    ・まずモンタさんが独自に定義したクラスの中に"Icon"という名前のクラスがないかを探します。
    ・そこに無ければ、今度は「参照設定」で指定されているdllなどに含まれるクラスの中に
    Iconという名前のクラスがないかを探します。
    ・System.dllの中にSystem.Drawing.IconクラスがあるのでAsの後ろにある"Icon"というのは、
    このクラスだと判断します。

    > 何を参照するかは
    > プロジェクトのプロパティ→参照タブ、またはソリューションエクスプローラ→すべて表示→参照設定ノード
    > です。

    というまどかさんの回答は、この探す場所となるdllはどうやって決まっているか?ということに
    対する説明ですね。

    System.dllやSystem.Windows.Forms.dllなどのDLLは.NET Frameworkのクラスライブラリのdllのため、
    最初から使えるようなっています。
    (String型などの基本的な型はmscorlib.dllに入っていますが、これはVisualStudioで特に
    参照設定をしなくても暗黙に参照されます)

    ちなみに「As Integer」のようなVBの言語仕様で規定されている型が指定できるのは、
    例えばこのIntegerは.NET FrameworkクラスライブラリのSystem.Int32の別名で、
    VBが内部的にInteger → System.Int32だと解釈してくれるようになっているからです。
記事No.5569 のレス /過去ログ15より / 関連記事表示
削除チェック/

■5725  ToolStripSplitButtonのドロップが効く範囲
□投稿者/ まんぼう -(2007/07/21(Sat) 19:54:05)

    分類:[.NET 全般] 

    2007/07/21(Sat) 20:04:03 編集(投稿者)

    VB2005, WinFormです。

    ToolStripButtonで▼の部分を押さないとドロップダウンリストが開かないのですが、
    これを見出しの部分も含めてどこをクリックしてもドロップダウンリストが開くようにしたいです。
    かつ、見出しと▼の分割線も消したいです。

    デザイナ上でToolStripButtonをクリックした時にはこの動作になるようですが…
    何か方法はありますでしょうか?

    ※図で補足

    現状
    --------------
    |ファイル |▼|
    --------------
    ^^
    ↑DropDownListが開くのはここだけ
    希望
    --------------
    |ファイル ▼|
    --------------
    ^^^^^^^^^^^^
    ↑全部 ↑分割線も消したい


    ※訂正
    ×ToolStripButton
    ○ToolStripSplitButton
親記事 /過去ログ16より / 関連記事表示
削除チェック/

■5816  Re[5]: DateTimePickerの初期値について。
□投稿者/ kk -(2007/07/24(Tue) 11:04:12)
    みなさん、返信ありがとうございます。

    なんとか無事、解決できました。
    ありがとうございました。


    以下詳細。
    ----------------------------------------------------------------------
    this.dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Short;
    this.dateTimePicker1.ShowCheckBox = true;

    public Form1()
    {
    //このタイミングだとTextの方が更新されない。
    dateTimePicker1.Value = DateTime.Now.AddDays(-7);
    dateTimePicker1.Checked = false;
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    //このタイミングだとうまく更新できた。
    dateTimePicker1.Value = DateTime.Now.AddDays(-7);
    dateTimePicker1.Checked = false;
    }

    private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
    {
    Console.Write(dateTimePicker1.Value + "=" + dateTimePicker1.Text + "\n");
    }
    ----------------------------------------------------------------------

    dateTimePicker1_ValueChanged で Value が更新されたタイミングでValueとTextを取得してみた所、
    Form1処理で1回目が呼ばれ、Valueの値は更新されるが、Textが空。
    Form1_Load処理で2回目が呼ばれ、このタイミングだと両方が更新されました。

    ちなみに新規で作成してみてもForm1処理タイミングでは駄目でした。


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

■5923  Re[2]: DataGridViewの表に関して
□投稿者/ ぽぴ王子 -(2007/07/26(Thu) 12:15:18)
>
    こんな感じで DataGridview を表示しているときに
    
    +------+-------------+
    |  ID  |    NAME     |
    +------+-------------+
    | 0033 | 刈歩菜良    |
    +------+-------------+
    | 0034 | R・田中一郎 |
    +------+-------------+
    | 0051 | ぽぴ王子    |
    +------+-------------+
    | 0054 | シャノン    |
    +------+-------------+
    | 0076 | とりこびと  |
    +------+-------------+
    | 0095 | 片桐 継     |
    +------+-------------+
    |                    |
    |                    | ← ここが空白になるので、何かほしい
    |                    |
    |                    |
    |                    |
    |                    |
    |                    |
    +--------------------+
    
    ってことなのかな?と思いました。
    だとすると、データソースとして与えるテーブルにダミーの行を追加する
    ぐらいしか思いつきません。
    あ、あと表示のみの場合に限ります。編集されると困るし。
    
    田中さんも書かれていますが、質問したいことが相手に伝わらないと
    回答を得るのも難しいんじゃないかと思います。
    言いたいことが伝わるかどうか、質問内容を投稿する前に一度読み直して
    みるのもいいんじゃないでしょうか。
記事No.5910 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5791  Re[1]: プリンタのポート番号を取得したい
□投稿者/ 魔界の仮面弁士 -(2007/07/23(Mon) 21:11:41)
    2007/07/23(Mon) 21:12:09 編集(投稿者)

    No5788 (nana* さん) に返信
    > ある特定のプリンタのポート番号をIPアドレス\ポート番号形式で取得したいと考えています。
    (中略)
    > WMIを使用すれば取得可能らしいのですが、WMIに関する技術力不足のため

    WMI でよければ、これでどうでしょう。


    Option Explicit
    Private Sub Form_Load()
    Dim prn As Object
    For Each prn In GetObject("winmgmts:").InstancesOf("Win32_Printer")
    Debug.Print "名前="; prn.Name
    Debug.Print "モデル="; prn.DriverName
    Debug.Print "ポート="; prn.PortName
    Debug.Print "---------------"
    Next
    End Sub


    http://msdn2.microsoft.com/en-us/library/Aa394363.aspx
記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5804  Re[2]: プリンタのポート番号を取得したい
□投稿者/ nana* -(2007/07/24(Tue) 09:18:46)
    No5791 (魔界の仮面弁士 さん) に返信
    > 2007/07/23(Mon) 21:12:09 編集(投稿者)
    >
    > ■No5788 (nana* さん) に返信
    >>ある特定のプリンタのポート番号をIPアドレス\ポート番号形式で取得したいと考えています。
    > (中略)
    >>WMIを使用すれば取得可能らしいのですが、WMIに関する技術力不足のため
    >
    > WMI でよければ、これでどうでしょう。
    >
    >
    > Option Explicit
    > Private Sub Form_Load()
    > Dim prn As Object
    > For Each prn In GetObject("winmgmts:").InstancesOf("Win32_Printer")
    > Debug.Print "名前="; prn.Name
    > Debug.Print "モデル="; prn.DriverName
    > Debug.Print "ポート="; prn.PortName
    > Debug.Print "---------------"
    > Next
    > End Sub
    >
    >
    > http://msdn2.microsoft.com/en-us/library/Aa394363.aspx


    魔界の仮面弁士 さんお返事ありがとうございます。

    書き方が悪く 申し訳ありません。
    自分がWMIについての理解が浅く、社内でも詳しいエンジニアが居ないようなので
    後々の運用と開発の生産性を考えて WMIを使用せずに情報を取得したいと考えているのです。

    やはり、難しいのでしょうか??
記事No.5788 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5578  Re[7]: DataGridの行の削除の仕方
□投稿者/ もみじ -(2007/07/18(Wed) 17:54:51)
    上記のULR一部抜粋

    この辺がご参考になるかと思います。

    //-----------------------------------------------------------
    Dim dstMain As New DataSet()

    '選択行(列)削除
    Private Sub btnRowDelete_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnRowDelete.Click

    Me.lblMsg.Text = ""
    '選択されているか
    If Me.dgdMain.CurrentRowIndex.Equals(-1) Then
    Me.lblMsg.Text = "選択されていないので削除できません。"
    Exit Sub
    End If

    '選択されている行の値でデータセット内のテーブル行削除
    dstMain.Tables(0).Rows(Me.dgdMain.CurrentRowIndex).Delete()
    'データグリッドに再表示
    Me.dgdMain.SetDataBinding(dstMain, dstMain.Tables(0).TableName)

    End Sub
    //-----------------------------------------------------------


    CurrentRowIndex は現在選択(指定)している行です。(言い換えれば、削除対象行)

    間違っていたらすいません。
記事No.5521 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5837  Re[2]: XML編集ソフト作成方法
□投稿者/ aaa -(2007/07/24(Tue) 16:08:04)
    No5836 (HIRO さん) に返信
    
    ご返答ありがとうございます!
    
    > ReadXMLでDataSetにデータを読み込めているんですよね?
    > DataSetにDataTableが出来ていると思うのですが、そのDataTableの値を変更してWriteXMLするのが簡単かと思います。(但し、細かい処理をするには不向きかもしれません)
    > 
    > 特定のタグを探す場合はDataTableのSelectメソッドが使用できるかと思います。
    
    DataTableは自動的に作成されているのでしょうか?
    うまく値を取り出せません・・・。
    以下にソースコードを記述します。
    
    //ソースコード--------
    DataSet dtSet = new DataSet();
    StreamReader reader = new StreamReader("test.xml",System.Text.Encoding.GetEncoding("Shift_Jis"));
    
    dtSet.ReadXml(reader);
    
    //---------------------
    
    間違いがあればご指摘下さい。
    なお、XmlDocumentを使用することも考えたのですが
    DataSetの方が特定のタグを検索するのが容易なようだったので
    DataSetを使用しています。
    認識は正しいでしょうか?
    
    以上、よろしくお願い致します。
    
記事No.5834 のレス /過去ログ16より / 関連記事表示
削除チェック/

■5840  Re[3]: XML編集ソフト作成方法
□投稿者/ HIRO -(2007/07/24(Tue) 16:24:17)
>
    No5837 (aaa さん) に返信
    > ■No5836 (HIRO さん) に返信
    >
    > ご返答ありがとうございます!
    >
    >>ReadXMLでDataSetにデータを読み込めているんですよね?
    >>DataSetにDataTableが出来ていると思うのですが、そのDataTableの値を変更してWriteXMLするのが簡単かと思います。(但し、細かい処理をするには不向きかもしれません)
    >>
    >>特定のタグを探す場合はDataTableのSelectメソッドが使用できるかと思います。
    >
    > DataTableは自動的に作成されているのでしょうか?
    > うまく値を取り出せません・・・。
    > 以下にソースコードを記述します。
    >
    > //ソースコード--------
    > DataSet dtSet = new DataSet();
    > StreamReader reader = new StreamReader("test.xml",System.Text.Encoding.GetEncoding("Shift_Jis"));
    >
    > dtSet.ReadXml(reader);
    >
    > //---------------------
    >
    > 間違いがあればご指摘下さい。
    > なお、XmlDocumentを使用することも考えたのですが
    > DataSetの方が特定のタグを検索するのが容易なようだったので
    > DataSetを使用しています。
    > 認識は正しいでしょうか?
    >
    > 以上、よろしくお願い致します。
    >

    認識は間違っていないと思います。
    ただ、最初に述べたように細かい事をしたいのであれば、DataSetは不向きかもしれません。
    XmlDocumentを使用する方が良いでしょう。(ちょっと敷居が高いですが)

    DataSetに正しくファイル内容が読み込まれた場合には、

    If dtSet.Tables.Count > 0 Then

    End If

    が成り立つかと思います。
    正常に読み込めた場合には、DataSetに複数のテーブルが作成されるからです。

    で、データを取り出すには、dtSet.Tables(0).Rows()() のように取り出すのですが(他にも方法があります)、この辺はヘルプを見た方がよいと思います。
    http://msdn2.microsoft.com/ja-jp/library/system.data.datatable(VS.80).aspx

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

■6137  DataSetでDataTableの構造ごとのコピー・追加
□投稿者/ はる -(2007/08/02(Thu) 10:09:22)

    分類:[C#] 

    いつもお世話になっています。
    Visual Studio 2005 C#でXMLファイルのエディタを作成しています。
    そこで、DataSetにてXMLファイルを読み込み、データを追加する際に
    構造ごと(DataTableごと)指定した位置に追加したいのですが
    うまくいきません。

    // ソースコード↓↓↓
    DataSet aDtSet = new DataSet();
    StreamReader aReaderv= new StreamReader("sample.xml",System.Text.Encoding.GetEncoding("Shift_Jis"));

    //XMLファイル読み込み
    aDtSet.ReadXml(Reader);

    //テーブルの追加???

    //sample.xmlの構造
    //<ProjectFile>
    // <ProjectInfo>
    // <Type>1</Type>
    // <Version>1.0</Version>
    // </ProjectInfo>
    // <ModelData>
    // <Element>
    // <Name>aaa</Name>
    //  <Value> --------------------- ※このValueを構造も含めコピーし
    //  <Data>1<Data> |  Name以下に複数追加したい
    //  </Value> --------------------
    // </Name>
    // </Element>
    // </ModelData>
    //</ProjectFile>

    DataTableの扱い方が分からずうまくできません。
    ご教授よろしくお願い致します。
親記事 /過去ログ16より / 関連記事表示
削除チェック/

■6139  Re[1]: DataSetでDataTableの構造ごとのコピー・追加
□投稿者/ HIRO -(2007/08/02(Thu) 11:27:28)
>
    No6137 (はる さん) に返信
    > //sample.xmlの構造
    > //<ProjectFile>
    > // <ProjectInfo>
    > // <Type>1</Type>
    > // <Version>1.0</Version>
    > // </ProjectInfo>
    > // <ModelData>
    > // <Element>
    > // <Name>aaa</Name>
    > //  <Value> --------------------- ※このValueを構造も含めコピーし
    > //  <Data>1<Data> |  Name以下に複数追加したい
    > //  </Value> --------------------
    > // </Name>
    > // </Element>
    > // </ModelData>
    > //</ProjectFile>
    >

    DataTabelの扱い方の前に Sample.xmlの構造おかしくないでしょうか?
    > // <Name>aaa</Name>
    > //  <Value> --------------------- ※このValueを構造も含めコピーし
    > //  <Data>1<Data> |  Name以下に複数追加したい
    > //  </Value> --------------------
    > // </Name>

    <Name>タグに対する"</Name>"が2個ありますよ。
記事No.6137 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6140  Re[2]: DataSetでDataTableの構造ごとのコピー・追加
□投稿者/ はる -(2007/08/02(Thu) 11:32:24)
    ご返答ありがとうございます。
    すみません、写し間違えました。
    正しくは以下の通りです。

    >>//sample.xmlの構造
    >>//<ProjectFile>
    >>// <ProjectInfo>
    >>// <Type>1</Type>
    >>// <Version>1.0</Version>
    >>// </ProjectInfo>
    >>// <ModelData>
    >>// <Element>
    >>// <Name>aaa</Name>
    >>// <Value> --------------------- ※このValueを構造も含めコピーし
    >>// <Data>1<Data> |  Name以下に複数追加したい
    >>// </Value> --------------------
    >>// </Element>
    >>// </ModelData>
    >>//</ProjectFile>

    Value以下のDataも含めコピーし追加したいのですが
    どのようにすればよいのでしょうか?
    よろしくお願い致します。
記事No.6137 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6153  Re[8]: DataSetでDataTableの構造ごとのコピー・追加
□投稿者/ はる -(2007/08/02(Thu) 15:05:38)
    No6152 (HIRO さん) に返信
    > ■No6150 (はる さん) に返信
    >>ありがとうございます。
    >>XmlDocumentも試してみました。
    >>XmlDocumentで要素を一つずつ追加することはできましたが
    >>ツリー構造を子も含めてコピーして追加することってできますか?
    >
    > 取得したノードをXmlNodeクラスのAppendChildメソッドで追加できるのではないでしょうか?
    > (すみませんが検証しておりません)


    以下のコードを書いていますがうまくいきません。
    ノードのコピーが足りないように思いますがよく分かりません。

    //---ソースコード---------------------------------
    XmlDocument doc = new XmlDocumen();
    XmlTextWriter tw = new XmlTextWriter("result.xml",null);
    XmlNode domNode;
    XmlNode addNode;

    //XMLファイルの読み込み
    doc.Load("sample.xml");

    //コピーするノードを設定
    addNode=doc.SelectSingleNoe("/ProjectFile/ModelData/Element/Value");

    //指定位置に追加実行
    domNode=doc.SelectSingleNode("/ProjectFiles/ModelData/Element");
    domNode.AppendChild(addNode);

    //XMLファイルに書き込み
    doc.Save(tw);

    //sample.xmlの構造
    //<ProjectFile>
    // <ProjectInfo>
    // <Type>1</Type>
    // <Version>1.0</Version>
    // </ProjectInfo>
    // <ModelData>
    // <Element>
    // <Name>aaa</Name>
    // <Value> --------------------- ※このValueを構造も含めコピーし
    // <Data>1<Data> |  Name以下に複数追加したい
    // </Value> --------------------
    // </Element>
    // </ModelData>
    //</ProjectFile>


    間違いご指摘いただけるとうれしいです。
    よろしくお願い致します。
記事No.6137 のレス /過去ログ16より / 関連記事表示
削除チェック/

■6145  構造体内での配列の宣言
□投稿者/ kou -(2007/08/02(Thu) 13:47:01)

    分類:[C++/CLI] 

    こんちには、分からないことがあるので質問させていただきます。

    以前まで、Managed C++ でプログラムを作成していたのですが、
    それを、C++/CLI に変換しているとこで問題が発生してしまいました.

    MC++
    --------------
    struct s{
    int a[10];
    int b[10];
    }

    s p[10];

    p[1].a[2]=1;
    p[2].a[2]=2;
    --------------

    C++/CLI
    --------------
    value struct s{
    static array<int>^ a = gcnew a<int>(10);
    static array<int>^ b = gcnew b<int>(10);

    }

    static array<s>^ p = gcnew array<s>(10);

    p[1].a[2]=1;
    p[2].a[2]=2;
    --------------

    として中身を確認した時に、
    MC++ では、p[1].a[2]=1 となっていたのですが
    C++/CLI では、p[1].a[2]=2 となってしまっていました。

    こうなってしまう、原因、解決法を教えて頂けたらと思います。
    よろしくお願いします。
親記事 /過去ログ16より / 関連記事表示
削除チェック/

■6173  Re[4]: 金額の扱いについて
□投稿者/ むねお -(2007/08/03(Fri) 10:51:40)
    > プログラマが根本的に理解していないようでは、やはりバグが生まれると思うからです。
    至極もっともなご意見で恐れ入ります。私自身.NETでの開発経験がないのでメンバーにレクチャー
    できるかどうか自信がないのでなんとか手法で逃げようとしていたのかも知れません。
    
    > SQLServerから出し入れするときに小数部2桁で扱うということですよね?
    > プログラム内部では小数部3桁以上を持つことになると思います。(でないと丸め方を選べない)
    
    最初は下記のようにSQL Serverの結果と一致するように固定小数点型をエミュレート?するような
    ものを考えていたのですが、何か方向性が違うような気がしていた次第です。
    
    
    -----------------------------------------------------------------------------------
    Option Strict On
    
    Imports System.Data.SqlTypes
    
    Public Class Class1
    
        Shared Sub main()
    
            Dim d As Decimal = 1D
            Dim d2 As Decimal = d / 3D
            Dim d3 As Decimal = d2 * 3D
            Dim d4 As Decimal = (1D / 3D) * 3D
    
            MessageBox.Show(d3.ToString & ":" & d4.ToString)
    
            Dim c As New Currency(19, 4)
            Dim c2 As New Currency(19, 4)
            Dim c3 As New Currency(19, 4)
            Dim c4 As New Currency(19, 4)
    
            c.Value = 1D
            c2.Value = c.Value / 3D
            c3.Value = c2.Value * 3D
            c4.Value = (1D / 3D) * 3D
    
            MessageBox.Show(c3.Value.ToString & ":" & c4.Value.ToString)
    
        End Sub
    
    End Class
    
    Public Structure Currency
    
        Private _Value As SqlDecimal
        Private _Presition As Integer
        Private _Scale As Integer
    
        Public Sub New(ByVal p As Integer, ByVal s As Integer)
            _Presition = p
            _Scale = s
        End Sub
    
        Public Property Value() As SqlDecimal
            Get
                Return _Value
            End Get
            Set(ByVal sd As SqlDecimal)
                _Value = SqlDecimal.ConvertToPrecScale(sd, _Presition, _Scale)
            End Set
        End Property
    
    End Structure
    
    -----------------------------------------------------------------------------------
    
    【SQL Server】
    
    declare @d decimal(19,4) 
    declare @d2 decimal(19,4) 
    declare @d3 decimal(19,4) 
    declare @d4 decimal(19,4)
    
    set @d = 1.
    set @d2 = @d / 3.
    set @d3 = @d2 * 3.
    set @d4 = (1. / 3.) * 3.
    
    select str(@d3,19,4) + ':' + str(@d4,19,4)
    
    結果:0.9999:1.0000
    
    
記事No.6149 のレス /過去ログ16より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>

ヒット件数が多いので過去ログ1〜18 までの検索結果 / 過去ログ19からさらに検索→

パスワード/

- Child Tree -