ファイル保存時に表示されない問題

このQ&Aのポイント
  • ファイルを保存しても全く表示されない問題が発生しています。
  • 保存先を選択するボタンの中身で、SaveFileDialogを使用して保存先を指定しています。
  • 保存ボタン内でStreamWriterを使用してデータをファイルに書き込んでいますが、全く表示されません。
回答を見る
  • ベストアンサー

保存しても全く表示されない;;

保存しても全く表示されない;; 任意に選択したファイルに出力保存したいのですが全く出力されません;; 以下は保存先を選択するボタンの中身です。 private void button7_Click(object sender, EventArgs e) { SaveFileDialog od = new SaveFileDialog(); od.Filter = "テキストファイル(*.txt) | *.txt"; if (od.ShowDialog() == DialogResult.OK) { cl_filename = od.FileName; textBox8.Text = cl_filename; } } このようにして保存先を選択して 別ボタンで StreamWriter sw = new StreamWriter(cl_filename, false, System.Text.Encoding.GetEncoding("shift_jis")); と宣言しています。保存先のところには先ほどのcl_filenameを指定しています。 なお、cl_filenameはグローバルに宣言してあります。 そしてこのボタン内で // Write the data to a file // 分析情報をファイルに書く stbuf = "データ数:" + kosu_i.ToString(); sw.WriteLine(stbuf); stbuf = ""; stbuf = "次元数:" + zigen_i.ToString(); sw.WriteLine(stbuf); stbuf = ""; stbuf = "クラスター数:" + cl_i.ToString(); sw.WriteLine(stbuf); stbuf = ""; stbuf = "初期分割:"; sw.WriteLine(stbuf); stbuf = ""; としているのですが全く表示されません。。;; 上手く行くはずなのですが・・;; 分かる方お願い致します;;

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

書き終わったあとでちゃんとcloseしてますか? http://msdn.microsoft.com/ja-jp/library/system.io.streamwriter.close.aspx

saclover
質問者

お礼

有難うございました☆ なりました!!

その他の回答 (1)

  • titokani
  • ベストアンサー率19% (341/1726)
回答No.2

問題をもっと掘り下げましょう。 ファイルすら作成されないのか、 ファイルは作成されるけれど、中身が書き込まれないのか、 中身も書き込まれているが、その中身が不正なためにメモ帳などではうまく表示されないのか、 などなど。

関連するQ&A

  • 只今C#からの結果をエクセルに保存するという事を行っているのですが

    只今C#からの結果をエクセルに保存するという事を行っているのですが エクセルに書きこんだときに数値以外が文字化けしてしまいます。 保存形式はcsvです; 以下に現在作成中のコードの一部を載せておきます; buttun7は参照先設定のボタンです。 private void button7_Click(object sender, EventArgs e) { SaveFileDialog od = new SaveFileDialog(); od.Filter = "テキストファイル(*.csv) | *.csv"; if (od.ShowDialog() == DialogResult.OK) { cl_filename = od.FileName; textBox8.Text = cl_filename; } } また以下のが実際に書きこんでいる部分です;         // Write the data to a file // 分割結果をファイルに書く file.Write("クラスター" + i + " " + "=" + " " + "{"); for (k = 0; k < cl_datacnt[i]; k++) { file.Write(cl_data[i][k] + ","); } file.Write("}"); file.WriteLine(""); 誰か詳しい方宜しくお願い致します;;

  • C#でのcsv保存

    今,下記のようなプログラムを組んでいます.ですが,うまくdataGridviewのデータが保存されません.何がいけないのでしょうか?だれかご教授よろしくお願いいたします. int R,C; R = dataGridView1.RowCount - 1; C = dataGridView1.ColumnCount - 1; string[] cdata = new string[R]; //string Ter =Convert.ToString(R); //string Tec = Convert.ToString(C); //textBox1.Text = Ter; //textBox2.Text = Tec; for (int Gdata = 1; Gdata < R; Gdata++) { string c = Convert.ToString(dataGridView1.Rows[Gdata].Cells[0].Value); cdata[Gdata] = c; //saveFileDialog1.Filter = "csvファイル (*.csv)|*.csv"; //if (saveFileDialog1.ShowDialog() == DialogResult.OK) //{ // int cdata = Convert.ToInt16(c); // cdata.saveNewCSVdata(saveFileDialog1.FileName); //} } //SaveFileDialogクラスのインスタンスを作成 SaveFileDialog sfd = new SaveFileDialog(); //ダイアログを表示する if (sfd.ShowDialog() == DialogResult.OK) { //OKボタンがクリックされたとき //選択された名前で新しいファイルを作成し、 //読み書きアクセス許可でそのファイルを開く //既存のファイルが選択されたときはデータが消える恐れあり System.IO.Stream stream; stream = sfd.OpenFile(); if (stream != null) { //ファイルに書き込む System.IO.StreamWriter sw = new System.IO.StreamWriter(stream); sw.Write(cdata); //閉じる sw.Close(); stream.Close(); } }

  • CSVファイルへの保存の際、データが途中で切れてしまいます。

    はじめまして。初心者になりますが、よろしくお願いします。 visual basic 2008を使って、研究で数値シミュレーションを組んでいるのですが、 その値をcsv形式で出力した際に、値の終わりの方が消えてしまう現象が出てしまいます。 具体的には、(出力データ数,xの値,zの値)という形でファイルに書き込んでいくのですが、 出力データ数を1001個にした際、保存したファイルをExcelやメモ帳で開くと、 最後が、(991,0.111540025,0.2)といった形となってしまい。値の数が合わないのです。 他にも出力データ数の値を変えて試してみましたが、 出力データ数が101個の際には、実際保存されたのは97個 出力データ数が2001個の際には、実際保存されたのは1998個 出力データ数が5001個の際には、実際保存されたのは4988個 となります。 いずれも、途中は完全に保存されていて、最後の部分のみ保存されていない(途中で切られている)といった状況です。 デバッグで切られている部分も値が存在していることは確認できていますので、 おそらく保存する際の間違いだと思うのですが、原因がわかりません。 すみませんが、ご指導をお願いします。 (以下、保存のためのプログラムを記します) Private Sub RK_ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Rk_ToolStripMenuItem.Click 'ルンゲクッタデータを保存するためのモジュール Dim myStream As Stream Dim saveFileDialog1 As New SaveFileDialog() Dim s As String = "" If save_flag = False Then MsgBox("Error!!" & vbLf & "データがありません。") Else saveFileDialog1.Filter = "csv files (*.csv)|*.csv|txt files (*.txt)|*.txt|All files (*.*)|*.*" saveFileDialog1.DefaultExt = "csv" saveFileDialog1.FilterIndex = 1 saveFileDialog1.RestoreDirectory = True saveFileDialog1.OverwritePrompt = True If saveFileDialog1.ShowDialog() = DialogResult.OK Then myStream = saveFileDialog1.OpenFile() Dim sw As StreamWriter = New streamWriter(myStream) If (myStream IsNot Nothing) Then For i As Integer = 0 To n s = t_temp(i).ToString & "," & x_temp(i).ToString & "," & z_temp(i).ToString sw.WriteLine(s) Next i myStream.Close() MsgBox("ファイルへの書き込みが終了しました") End If End If End If End Sub

  • C# プログラム

    今,下記のようなプログラムを組んでdatagridviewのデータをcsvに保存するようにしようとしているのですが,1つのデータであれば保存が出来たのですが,今行いたいのはdatagridviewにあるデータすべてをcsvに保存したいのです.おそらく配列か何かに入れないといけないんだとは思うのですが, どなたかご教授頂けないでしょうか? private void button2_Click(object sender, EventArgs e) { //データテーブル設定 int R, C; R = dataGridView1.RowCount - 1; C = dataGridView1.ColumnCount - 1; string wdata = string.Empty; string tmpdata = string.Empty; //string Ter =Convert.ToString(R); //string Tec = Convert.ToString(C); //textBox1.Text = Ter; //textBox2.Text = Tec; //SaveFileDialogクラスのインスタンスを作成 //SaveFileDialog sfd = new SaveFileDialog(); //ダイアログを表示する //if (sfd.ShowDialog() == DialogResult.OK) //c = dataGridView1[Rdata, Gdata].Value.ToString(); // 以下を変更 string c = Convert.ToString(dataGridView1.Rows[0].Cells[0].Value); // 以下ファイル書き込みと保存 string strName = "xxx.csv"; // 仮のファイル名 string strPath = "c:/csv/"; // 仮のディレクトリ名 SaveFileDialog sfd = new SaveFileDialog(); sfd.InitialDirectory = strPath; sfd.FileName = strName; sfd.Filter = "CSVファイル(*.csv)|*.csv"; sfd.Title = "保存先を指定してください"; sfd.RestoreDirectory = true; sfd.CheckFileExists = false; if (sfd.ShowDialog() == DialogResult.OK) { // ファイルを指定してインスタンス作成 System.IO.StreamWriter sw = new System.IO.StreamWriter(sfd.FileName); try { // ファイル書き込み sw.Write(c); } catch { // エラー処理(これだとダメだけどとりあえず) MessageBox.Show("ファイル書き込みエラー", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { // 解放 sw.Dispose(); sfd.Dispose(); } }

  • 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() どなたか、教えていただけませんでしょうか?

  • 一時ファイルをsavefileDialogを利用して保存するにはどのようにしたら良いのでしょうか?

    環境:VS2005 C# プログラム上でコメントアウトしてある様なやり方ではなく、 一旦、一時ファイルを作成しそのファイルをダイアログで保存先を任意のフォルダに保存したいのですがやり方はあるのでしょうか? OpenFileDialog ofd = new OpenFileDialog(); //一時ファイルを作成する string file_name = Path.GetTempFileName(); System.IO.StreamWriter writer = new StreamWriter(file_name); writer.WriteLine("tmptest"); writer.Close(); //ダイアログを表示 ofd.ShowDialog(); /*******************************▼コメントアウト System.IO.Stream stream; stream = ofdfilecommit.OpenFile(); if (stream != null) { //ファイルに書き込む System.IO.StreamWriter sw = new System.IO.StreamWriter(stream, 文字コード); sw.WriteLine("test"); //閉じる sw.Close(); stream.Close() } ********************************▲コメントアウト*/ //オブジェクトの破棄 ofd.Dispose(); ご協力お願いします。

  • .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()

  • 重複データを書き込まないようにするには?(VB)

    VB(2010)初心者です。 ボタンクリックで、テキストボックスに入力したデータをテキストファイルに 追加書き込みしていますが、同じデータは書き込めないようにしたいです。 下記コードにどのような記述を付け加えたら良いのでしょうか。 Dim fsFile As System.IO.FileStream = System.IO.File.OpenWrite("C:\List.txt") Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(fsFile) sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) sw.WriteLine(TextBox1.Text) sw.Flush() sw.Close() fsFile.Close()

  • C#でテキストをutf-8(BOM無し)保存したい

    C#で「名前を付けて保存」ダイアログでテキストを保存する際に、エンコードをutf-8のBOM無し形式で保存したいです。 今は、ただsaveFileDialogでそのまま保存しているだけですが、保存する際にエンコードをutf-8のBOM無しにするプログラムをご教授ください。 今は以下のようなプログラムを書いています。こちらでどのように追加すれば良いのかを教えてください。 //[名前を付けて保存]ダイアログをボックスを表示する saveFileDialog1.Filter = "UWSCファイル(*.uws)|*.uws"; //[ファイルの種類]ボックスの拡張子を設定。 saveFileDialog1.Filter = "DOTファイル(*.dot)|*.dot"; //[ファイルの種類]ボックスの拡張子を設定。 if (saveFileDialog1.ShowDialog() == DialogResult.OK) //ダイアログのOKがクリックされた場合は、 { System.IO.File.WriteAllText(saveFileDialog1.FileName, txtBox_ResultUWSC.Text, Encoding.Default); //txtBox_ResultUWSCの全テキスト内容を保存する。 } 以上、よろしくおねがいいたします。

  • C# StreamReader,StreamWriter による文字化

    C# StreamReader,StreamWriter による文字化け お世話になります。 文字化けで悩んでいます。 Visual Studio 2008 C# にて、テキストファイルからデータを読んで別のテキストファイルに そのまま書き出す(もちろん実際の運用では加工するわけですが)処理で文字化けが起こります。 そのテキストファイル自身を C# で作れば問題はないのですが、メモ帳を使って書き込んだファイルでは 文字化けが起こります。 対処方法があれば教えてください。 以下はその実験に使ったコードです。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { // これは正常に書き込みできました StreamWriter sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt"); sw.WriteLine("これはてすとです。"); sw.WriteLine("This is test."); sw.Close(); // これも正常に読み込め、書き込みもできました StreamReader sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt"); sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest.txt"); while (!sr.EndOfStream) { sw.WriteLine(sr.ReadLine()); } sr.Close(); sw.Close(); // 次はあらかじめメモ帳で作ったファイルを読んで、別のファイルに書き出します // これが文字化けします sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test2.txt"); sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest2.txt"); while (!sr.EndOfStream) { string dat = sr.ReadLine(); sw.WriteLine(dat); Console.WriteLine(dat); } sr.Close(); sw.Close(); } } }

専門家に質問してみよう