将字符串数组打印到txt文件

时间:2013-04-14 20:01:01

标签: c# arrays string

我是编程新手,但我喜欢它,我正尽力学习。 我正在编写一个小应用程序,它有一个多行文本框(txtOutput),我输入我的评论。然后,这些注释/行将以字符串数组的形式传输。 然后我调用一个类传输一些变量,并调用数组以打印到txt文件。 虽然我可以使用变量中的数据填充txt文件,但我无法将数组的内容添加到txt文件中。我将不胜感激。

从txtOutput到数组的文字

public void button6_Click(object sender, EventArgs e)
    {
       string[] comments = txtOutput.Text.Split(' ');

将数组和其他变量传递给class1(我有代码创建并保存这些变量的内容,并将数组保存到txt文件)。其他两个变量在文件上打印出来没有问题。

WriteTextFile WTR = new WriteTextFile();
        WTR.Save(temperatura, speedMotore, comments);

Class1代码(我在其中制作txt文件并保存。

class WriteTextFile
{
    public void Save(int sendTem, int sendMot, string[] comments)
    {
        DateTime Now = DateTime.Now;
        string dateTime = Now.ToString("F");
        SaveFileDialog sd = new SaveFileDialog();
        sd.Filter = "Text File | *.txt";
        if (sd.ShowDialog() == DialogResult.OK)  
{  
using (StreamWriter sw = new StreamWriter(sd.FileName))  
{
    sw.Write("File diconfigurazione del programma Arduino Control " + "\r\n");
    sw.Write("\r\n");
    sw.Write(dateTime + "\r\n");
    sw.Write("\r\n");
    sw.Write("\r\n");
    sw.Write("La temperatura impostata in PWM1 è: " + sendMot + "\r\n");
    sw.Write("\r\n");
    sw.Write("La velocità del motore impostata in PWM2 è: " + sendTem + "\r\n");
    sw.Write("\r\n");
    sw.Write(comments[1] + "\r\n");
    sw.Dispose();  
    sw.Close();
}  


}}}

我不确定是否要将txtOutput中的任何文本转移到"评论"数组正确。我想要实现的是将txtOutput中的那些行逐个打印在txt文件中,而我只是收到一条消息,其中显示"索引超出范围......."

2 个答案:

答案 0 :(得分:3)

不要像在Dispose语句中那样调用using - using语句会处理这个问题。这可能是问题的原因 - 流将在冲洗之前处理。

请保持:

using (StreamWriter sw = new StreamWriter(sd.FileName))  
{
    sw.Write("File diconfigurazione del programma Arduino Control " + "\r\n");
    sw.Write("\r\n");
    sw.Write(dateTime + "\r\n");
    sw.Write("\r\n");
    sw.Write("\r\n");
    sw.Write("La temperatura impostata in PWM1 è: " + sendMot + "\r\n");
    sw.Write("\r\n");
    sw.Write("La velocità del motore impostata in PWM2 è: " + sendTem + "\r\n");
    sw.Write("\r\n");
    sw.Write(comments[1] + "\r\n");
    sw.Close();
}  

答案 1 :(得分:0)

问题解决了。谢谢大家的意见。 我程序中的数组如下:

string[] comments = textBox5.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

然后打印内容:

foreach (string i in comments)
{
sw.Write(i + "\r\n");
}