- ベストアンサー
DataSetのwriteXmlでのXML宣言
chibita_papaの回答
私は、直接書き込んでいます。 '<?xml version="1.0" encoding="Shift_JIS" ?> xmlWriter.WriteLine("<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "Shift_JIS" & Chr(34) & " ?>") _Dataset.WriteXml(xmlWriter) こんな感じで。
関連するQ&A
- Try~Catch、Finallyについて。
下記のように、DataSetをXML出力するメソッドを作りました。 Public Sub WriteXml(ByVal xmlDs As DataSet) Try Dim fileStream As New System.IO.FileStream(holdFilePath, System.IO.FileMode.Create) Dim setting As New System.Xml.XmlWriterSettings '文字コード設定 With setting .Encoding = System.Text.Encoding.UTF8 .Indent = True End With Dim writer As System.Xml.XmlWriter = Xml.XmlWriter.Create(fileStream, setting) 'XMLへの書き込みを行い、FileStreamを閉じる xmlDs.WriteXml(writer) writer.Close() fileStream.Close() Catch ex As Exception MsgBox(ex.message) End Try End Sub メソッドは以上です。 writer.Close()、fileStream.Close()については、確実に 処理を行いたいので、Finallyで行おうかと思ったのですが、 その場合、Dim fileStream~、Dim writer~はTryの外に出さないと、 宣言されていないと言われてしまいます。 そうなると今度は、NewやXml.XmlWriter.Create(fileStream, setting) でコケた場合にCatchが出来ません…。 Usingを使うのが近いかなと思ったんですが、複数Newしている場合 でも使えるのでしょうか? 確実にClose処理を行うための改修箇所、アドバイスいただけ ないでしょうか? よろしくお願いします。
- ベストアンサー
- Visual Basic
- C# ファイル名を指定してオープン
StreamWriter swrite = new StreamWriter("C:\\19yamana.csv",false, System.Text.Encoding.GetEncoding("shift-jis")); のファイル名"C:\\19yamana.csv"の部分を変数にしたいのですがうまく出来ません。 やったこと: string fileName = "C:\\19yamana.csv"; StreamWriter swrite = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("shift-jis"));
- ベストアンサー
- C・C++・C#
- .NETで文字列のエンコードの仕方+ファイル操作
.NETで文字列のエンコードの仕方が知りたいです。 あと、ファイル操作についてわかりやすいホームページを探しています。 '指定したファイルに文字列を追加します Dim filename as String = "test.txt" Dim data as string = "美味ソ溝" System.IO.File.AppendAllText(filename, data, System.Text.Encoding.GetEncoding("euc-jp")) 'これと同じことを以下のStreamWriterでしたいのですが、文字のエンコードの方法がわかりません。どのようにすればうまくいきますか。 Dim filename as String = "test.txt" Dim data as string = "美味ソ溝" Dim fs As System.IO.FileStream = System.IO.File.OpenWrite(filename) Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(fs) sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) '書き込む前にエンコード?? sw.WriteLine(data) sw.Flush() sw.Close() fs.Close()
- ベストアンサー
- Visual Basic
- C#からテキストファイルへの出力について
お世話になります。 .NET C#で開発をしております。 下記のコードで、テキストファイルへ書き出す際、 何故か最初の1レコード目が書き出されない現象が 起きてしまいます。 どなたかご親切な方、ご教示頂きたく宜しくお願い致します。 記 public static int Syori() { string MitxtPath = @"D:\MData"; string SotxtPath = @"D:\SData"; for (int x = 0; x < 2; x++) { if (x == 0) { FileName = "\\JF01.txt"; } else if (x == 1) { FileName = "\\JS05.txt"; } FileStream fs = new FileStream(MitxtPath + FileName, FileMode.Open); StreamReader r = new StreamReader(fs, Encoding.GetEncoding("Shift_JIS")); if (r.ReadLine() != null) { StreamWriter textFile; textFile = new StreamWriter(SotxtPath + FileName, true, Encoding.GetEncoding("Shift_JIS")); //レコードを書き込む string ZanData; string newData; byte[] bytesData; while ((OkuriNokosi = r.ReadLine()) != null) { bytesData = System.Text.Encoding.GetEncoding(932).GetBytes(ZanData); newData = System.Text.Encoding.GetEncoding(932).GetString(bytesData); textFile.WriteLine(newData); } textFile.Close(); r.Close(); } }
- ベストアンサー
- C・C++・C#
- VB2005でのテキストファイルのアクセス権
ある条件の下テキストファイルを出力していますが、 出力ファイルを開いた状態で、再度ツールを実行すると 「別のプロセスが・・・アクセスできません。」 というエラーにはじかれてしまいます。 現在VB2005を使用していますが、以前VB6のときはエラーに なりませんでした。 ※Excelの場合はエラーになっていましたけど。 以下私のコードを抜粋 strNewDirはString型でパスが入っています。 Dim stFile As Stream = New FileStream(strNewDir, FileMode.OpenOrCreate) Dim encSJIS As Encoding = Encoding.GetEncoding("shift-jis") Dim swSJIS As StreamWriter = New StreamWriter(stFile, encSJIS) ・・・ swSJIS.Close() という形でファイルアクセスしています。 New FileStreamには[Access]や[Share]などがあるようで、 いろいろ試しましたが、どうもうまくいきません。 ご存知の方いらっしゃいますか?
- 締切済み
- Visual Basic
- DOMのXML宣言値の変更
XMLファイルをXMLパーサを使ってDOMにDocumentクラス変換します。 その変換してできたオブジェクトを操作して、 XML宣言のencodingの値を変更することは可能でしょうか?
- ベストアンサー
- Java
- xmlのファイルがよめません
XMLドキュメントのファイルがたくさんはいったものが送られてきましたが読めません。 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> とかでて内容がわかりません。 どうしたらよいですか
- 締切済み
- フリーウェア・フリーソフト
- カンマ区切りの文字列をDatasetに登録するには?【VB.NET2005】
テキストファイルを読込んでカンマ区切りでDatasetに登録する際は 以下の方法で行っていました。 Dim tfp As New TextFieldParser(fileName, System.Text.Encoding.GetEncoding("Shift_JIS")) Dim dt As New DataTable Dim dr As DataRow tfp.TextFieldType = FieldType.Delimited tfp.SetDelimiters(",") While Not tfp.EndOfData dr = dt.NewRow dr.ItemArray = tfp.ReadFields dt.Rows.Add(dr) End While tfp.Close() ds.Tables.Add(dt) これをファイルではなくDim str As String = "123,aaa" という文字列に対して行いたいのですが、 上記のReadFieldsの用に使える物は無いでしょうか?
- 締切済み
- Visual Basic
- Load出来ないXMLファイル
いつもお世話になっております。 標題の件なのですが、VB.NETでXMLファイルから設定情報(Oracleのユーザー名やパスワード等)を取得するプログラムを作成しております。 以下がそのソースコードになります。 ※VB.NET初心者なので、ネットにあったサンプルコードを参考にしました。 -------------------------------------------------- Public Function Setting_init() As Boolean Dim xmlDoc As New DOMDocument30 Dim Node As IXMLDOMNode Dim myErr Dim FileName As String FileName = "ini.xml" Const PATH_DTS = "//Settings/Database/DataSource" Const PATH_UID = "//Settings/Database/UserId" Const PATH_PSW = "//Settings/Database/Password" Const PATH_FRM = "//Settings/Path/Form" Const PATH_OUT = "//Settings/Path/Output" xmlDoc.async = False xmlDoc.resolveExternals = False xmlDoc.load(FileName) If (xmlDoc.parseError.errorCode <> 0) Then myErr = xmlDoc.parseError Setting_init = False Else xmlDoc.setProperty("SelectionLanguage", "XPath") Node = xmlDoc.selectSingleNode(PATH_DTS) G_DataSorce = Node.text Node = xmlDoc.selectSingleNode(PATH_UID) G_UsrId = Node.text Node = xmlDoc.selectSingleNode(PATH_PSW) G_PassWord = Node.text Node = xmlDoc.selectSingleNode(PATH_FRM) G_FormPath = Node.text Node = xmlDoc.selectSingleNode(PATH_OUT) G_OutPath = Node.text Setting_init = True End If End Function -------------------------------------------------- ちなみにXMLファイルの内容は -------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <Settings> <Database> <DataSource>Oracleサーバー名</DataSource> <UserId>ユーザー名</UserId> <Password>パスワード</Password> </Database> <Path> <Form>フォームが存在するフォルダパス</Form> <Output>ファイルを出力するフォルダパス</Output> </Path> </Settings> -------------------------------------------------- となっております。 お客様の環境で実行したら、このプログラムのxmlDoc.load(FileName)の箇所でエラーが出ました。 読み取るXMLファイル内の漢字を除いたら実行できたみたいなのですが、 開発環境ではXMLファイルに漢字を含んでいても問題なくload出来るのです。 端末に依存するのでしょうか? それともこの文字があったらダメというのがあるのでしょうか? 何か情報があればご教示願います。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- VB2008 txtファイル保存
こんにちは、Vb2008を勉強しています。 デスクトップに保存している、TXTファイルに、 フォームで入力したデータを追加保存したいと思い、ネットで調べたり…で 入力しましたが、txtファイルを開いてみると文字化けしてしまします。 Dim writer As System.IO.FileStream = _ System.IO.File.OpenWrite("C:\Users\Desktop\顧客管理.txt") 'SystemWriterオブジェクトを作成し、テキストデータが書き込めるようにする Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(writer) 'ファイルの末尾に移動する sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) 'データを書き込む sw.WriteLine(TextBox1.Text & "," & TextBox2.Text & "," & TextBox3.Text) 'ファイルを更新する sw.Flush() 'ファイルを閉じる sw.Close() writer.Close() 上記の方法で文字化けだったので、またまた、調べて入力しましたが 今度は、改行されず…単純な、データの追加のようになってしまっています。 私は、新しい行に追加できるようにしたいです。 下のコードは文字コードの指定をしたので、保存はできますが、 改行されません。 Dim FileName As String = "C:\Users\Desktop\確認.txt" Dim Writer As IO.StreamWriter Dim Encode As System.Text.Encoding '文字コードにShiftJISを指定。 Encode = System.Text.Encoding.GetEncoding("Shift-JIS") '既に存在するテキストに追加する場合は第2引数をTrueにする。 Writer = New IO.StreamWriter(FileName, True, Encode) Writer.Write(TextBox1.Text & "," & TextBox2.Text) Writer.Close() どなたか、教えていただけませんでしょうか?
- ベストアンサー
- Visual Basic