2

我是编程新手,但我喜欢它,我正在尝试尽可能多地学习。我正在编写一个小应用程序,它有一个多行文本框 (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 正确传输到“comments”数组。我想要实现的是从 txtOutput 中逐一打印在 txt 文件中的那些行,而我只收到一条消息,上面写着“索引超出范围......”

4

2 回答 2

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();
}  
于 2013-04-14T20:02:48.563 回答
0

问题解决了。谢谢大家的意见。我程序中的数组是这样工作的:

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

然后打印内容:

foreach (string i in comments)
{
sw.Write(i + "\r\n");
}
于 2013-04-15T05:25:39.963 回答