DOBON.NET DOBON.NETプログラミング掲示板過去ログ

コメント表示

  • 題名: コメント表示
  • 著者: イルカ
  • 日時: 2003/12/04 11:34:52
  • ID: 1662
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[Win2000 VB>VB.NET2003]
分類:[.NET]

現在、過去ログを参照しましてINIファイルの変わりにXMLファイルに設定を保存しているのですが設定を書き込んだ後、コメントが削除されてしまうのですがどうしてか分かりません。
■No1662に返信(イルカさんの記事)
> 現在、過去ログを参照しましてINIファイルの変わりにXMLファイルに設定を保存しているのですが設定を書き込んだ後、コメントが削除されてしまうのですがどうしてか分かりません。

どのような方法で書き込んでいるのでしょうか?もう少し詳しくお願いいたします。
■No1703に返信(管理人さんの記事)
記事No.1345で紹介されていたものを参考にさせていただいたのですがxmlファイルに読み書きはできるのですが書き込んだ時にコメントが消えてしまいます。
以下に参考にしたソースを記載します。
---------------------------------------------------------------------
記事No.1345より
[XMLファイル]
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<setting>
<db>
<user>xxxx</user>
<pass>xxxx</pass>
<dbname>xxxx</dbname>
</db>
</setting>
----------------------------------------------------------------------
'機能: 設定情報の取得
'
'引数: mainKey - メインキーワード
' subKey - サブキーワード
' filePath - xmlファイルパス
'   
'戻値: 設定情報値
'
'説明: キーワードに該当する情報を取得する
'
'備考:
'
Public Function FncReadXmlString _
(ByVal mainKey As String, ByVal subKey As String, ByVal filePath As String) As String
Dim dsXml As DataSet

Try
dsXml = New DataSet("XML")
dsXml.ReadXml(filePath)
Return dsXml.Tables(mainKey).Rows(0).Item(subKey).ToString
Catch ex As Exception
Return ""
Finally
dsXml.Dispose()
End Try
End Function
-----------------------------------------------------
'機能: 設定情報の保存
'
'引数: mainKey - メインキーワード
' subKey - サブキーワード
' data - 保存する情報
' filePath - xmlファイルパス
'   
'戻値: OK/NG
'
'説明: キーワードに該当する情報を保存する
'
'備考:
'
Public Function FncWriteXmlString _
(ByVal mainKey As String, ByVal subKey As String, ByVal data As String, ByVal filePath As String) As Boolean
Dim dsXml As DataSet

Try
dsXml = New DataSet("XML")
dsXml.ReadXml(filePath)
dsXml.Tables(mainKey).Rows(0).Item(subKey) = data
dsXml.WriteXml(filePath)
Return True
Catch ex As Exception
Return False
Finally
dsXml.Dispose()
End Try
End Function
このサンプルコードは、私が書いたので、一言レスしておきます。

No1323の質問では、
>Iniファイルのようにxmlファイルを使って保存、
読み込みができればと考えているのですが、そのようなサンプルは、
どこかにないでしょうか?

とありましたので、取敢えず、VB6でiniファイルを扱っていたのと同じように(分かりやすいように)
xmlファイルで情報を読み書きできるようにサンプルを書きました。

実際、このコードの処理は次のような感じです。

一度、DataSetに全体を読込む。
↓
該当部分を変更する。
↓
再度、DataSet全体をxmlファイルに出力する。

という流れになっています。

だから、次のようなiniファイルのコメント部分は消えてしまいます。

----------

'**************************
'  xxxxx設定ファイル
'
'  2003-12-08 nob
'
'**************************

----------

また、xmlファイル容量が巨大なときは、xmlファイルの処理時間が全体の処理時間に
影響してしまう可能性もありますので、注意してください。

コメント付記についてですが、
<description>xxxxx設定ファイル</description>のような感じで、タグを作成してはいかがでしょうか?

混乱させてしまって、申し訳ありません><
■No1718に返信(nobさんの記事)
ありがとうございます。
分かりました。他に方法がないかいろいろと調べてみます。
解決済み!
XmlDocumentクラスを使って書き換えれば、コメント(<!-- -->)は削除されないのではないでしょうか。XmlDocumentクラスの使い方はこちらをどうぞ。

・.NET Tips - 「アプリケーション構成ファイル」を編集する
http://dobon.net/vb/dotnet/programing/editappconfigfile.html
  • 題名: Re[6]: コメント表示
  • 著者: イルカ
  • 日時: 2003/12/10 8:42:19
  • ID: 1762
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No1758に返信(管理人さんの記事)
> XmlDocumentクラスを使って書き換えれば、コメント(<!-- -->)は削除されないのではないでしょうか。XmlDocumentクラスの使い方はこちらをどうぞ。
>
> ・.NET Tips - 「アプリケーション構成ファイル」を編集する
> http://dobon.net/vb/dotnet/programing/editappconfigfile.html
管理人さんありがとうございます。昨日、参考にさせてもらいできました。
また、他に調べてわからない事ができたら質問します。
そのときはまたお願い致します。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板