2013-05-07 65 views
0

我相信创建文件已完成。我遇到保存到文件的问题。我应该做的是最初创建文件,然后填写表单并将其保存到该文件,并通过文件中的逗号分隔它们,这样在我的下一个作业中,我可以创建一个表单来读取文件并填充该文件在表格中并由这些逗号分开并填入文本框中。C#在创建文件后从Windows窗体保存

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.IO; 

namespace FileExercise 
{ 
    public partial class frmscout : Form 
    { 
     private StreamWriter fileWriter; 

     public frmscout() 
     { 
      InitializeComponent(); 
      btnsave.Enabled = false; 
     } 

     private void clickclear(object sender, EventArgs e) 
     { 
      tb40.Clear(); 
      tbheight.Clear(); 
      tbname.Clear(); 
      tbposition.Clear(); 
      tbreps.Clear(); 
      tbverticle.Clear(); 
     } 

     private void clickexit(object sender, EventArgs e) 
     { 
      Application.Exit(); 
     } 

     private void clickselect(object sender, EventArgs e) 
     { 
      DialogResult result; 
      string fileName; 


      using (SaveFileDialog fileChooser = new SaveFileDialog()) 
      { 
       fileChooser.CheckFileExists = false; 
       result = fileChooser.ShowDialog(); 
       fileName = fileChooser.FileName; 
      } 

      if (result == DialogResult.OK) 
      { 
       if (fileName == string.Empty) 
       { 
        MessageBox.Show("Invalid File Name", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       } 
       else 
       { 
        try 
        { 
         FileStream flstrm = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write); 
         fileWriter = new StreamWriter(flstrm); 

         btnsave.Enabled = true; 
         btnopen.Enabled = false; 
        } 
        catch(IOException) 
        {enter code here 
         MessageBox.Show("Error opening file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
        } 
       } 
      } 



      //FileStream outfile = new FileStream(fileName, FileMode.Append, FileAccess.Write); 


     } 

     private void clicksave(object sender, EventArgs e) 
     { 
      string[] values = new string[6]; 

      values[0] = tbname.Text; 
      values[1] = tbheight.Text; 
      values[2] = tb40.Text; 
      values[3] = tbposition.Text; 
      values[4] = tbreps.Text; 
      values[5] = tbverticle.Text; 
      //}     
     } 
    } 
} 

回答

0

你正在创建的StreamWriter的新实例,并收集数据的保存按钮的onClick,但无处你叫StreamWriter.Write()StreamWriter.WriteLine()。您至少需要在代码中插入其中一个,这很可能在clicksave函数中。

编辑: 例如:

private void clicksave(object sender, EventArgs e) 
{ 
    string[] values = new string[6]; 

    values[0] = tbname.Text; 
    values[1] = tbheight.Text; 
    values[2] = tb40.Text; 
    values[3] = tbposition.Text; 
    values[4] = tbreps.Text; 
    values[5] = tbverticle.Text; 

    fileWriter.WriteLine(String.Join(",",values)); 
    fileWriter.Flush(); 
    fileWriter.Close(); 
    //}     
} 
0

你可以做如下

private void clicksave(object sender, EventArgs e) 
    { 
     string[] values = new string[6]; 

     values[0] = tbname.Text; 
     values[1] = tbheight.Text; 
     values[2] = tb40.Text; 
     values[3] = tbposition.Text; 
     values[4] = tbreps.Text; 
     values[5] = tbverticle.Text; 
     // you can get file name from `ShowDialog`, 
     //assume that file name is "filename.txt" then 
     System.IO.File.WriteAllLines("filename.txt",values);     
    } 
0
Private void clicksave(object sender, EventArgs e) 
{ 
string[] values = new string[6]; 

values[0] = tbname.Text; 
values[1] = tbheight.Text; 
values[2] = tb40.Text; 
values[3] = tbposition.Text; 
values[4] = tbreps.Text; 
values[5] = tbverticle.Text; 

fileWriter.WriteLine(String.Join(",",values)); 
fileWriter.Flush(); 
fileWriter.Close(); 

} 

你可以参考以下链接字符串的加盟....因为这来自艾德里安代码..

http://www.dotnetperls.com/string-join

+0

工作。谢谢。 – 2013-05-07 20:20:14