简单ASCII输出到文件问题。 (相当于VB打印#x,字符串)

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
我感觉像这样的NOOBE ...现在已经用C#编程了大约3个小时...所以我想是。狂喜

无论如何...我被困在可能的C#101东西上...我编写了程序代码以与USB设备通信,创建文件,从设备中提取数据...我只想将其打印到文件中。

我有一个名为"file_name"然后将文件的名称/路径放入其中...我可以查看目录并看到文件实际上是创建的...
C#:
 //----------- Put a file somewhere -----------------------------------------------------------
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.Filter = "Excel CSV|*.csv|All Files|*.*";
            saveFileDialog1.Title = "Save Data File";
            saveFileDialog1.ShowDialog();
            //----------- Now do something ---------------------------------------------------------------
            file_name.Text = saveFileDialog1.FileName;

那行得通...我将跳过一堆代码来配置设备,等等...在这里,我正在获取数据,并尝试将结果输出到文件...

C#:
if (saveFileDialog1.FileName != "")
            {
                System.IO.FileStream myfile = (System.IO.FileStream)saveFileDialog1.OpenFile();
                //============================================================================================
                textBox1.Text += "Iarray Data\r\n";
                for (int myCounter = 0; myCounter < 512; myCounter++)
                {
                    textBox1.Text += Iarray[myCounter].ToString("D2") + ",";
                    //-在这里插入写
                }
                textBox1.Text += "\r\n";
                //============================================================================================
                textBox1.Text += "\r\n" + "Qarray Data\r\n";
                for (int myCounter = 0; myCounter < 512; myCounter++)
                {
                    textBox1.Text += Qarray[myCounter].ToString("D2") + ",";
                    //-在这里插入写
                }
                textBox1.Text += "\r\n";
                //============================================================================================
                myfile.Close();
            }

在我有的地方"//-在这里插入写"我想发送在上面一行中被踢出的文本字符串...

在VB中,我将打开文件并执行以下操作:
C#:
Print #1, myText

所以在这种情况下,我想做类似...

写入myfile,Qarray [myCounter] .ToString("D2") + ",";

显然...问题是"写入myfile"不是要使用的方法/功能...。"myfile.Write()"想要一堆BYTE值...

我可以定义一个字符串... myText...做类似...

C#:
string myText = Iarray[myCounter].ToString("D2") + ",";

那我怎么得到 myText 出文件???? (r)

谢谢,
杰瑞
 
Last edited:

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
如果要向文件中写入文本,则不要创建FileStream,它是在基本二进制级别上与文件的连接。要编写文本,请创建一个StreamWriter。它用于将文本写入流。它可以写入任何类型的Stream,包括FileStream。尽管可以,但是通常不会先创建FileStream,因为您可以简单地将文件路径传递给构造函数,并且它将在内部处理FileStream。拥有打开的StreamWriter对象后,您可以调用许多Write和/或WriteLine重载中的任何一种来写入格式化或未格式化的文本。完成后,请务必关闭StreamWriter,如果可以的话,应使用`using`块,例如
使用 (var writer = new StreamWriter(filePath))
{
    // Use writer here.
}
 

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
因此,如果我了解您...那么可以使用此部分来获取用户对文件放置位置的请求...
C#:
            //----------- Put a file somewhere -----------------------------------------------------------
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.Filter = "Excel CSV|*.csv|All Files|*.*";
            saveFileDialog1.Title = "Save Data File";
            saveFileDialog1.ShowDialog();
            //----------- Now do something ---------------------------------------------------------------
            file_name.Text = saveFileDialog1.FileName;

但是使用 流作家 建立连接...

C#:
使用 (var writer = new StreamWriter(saveFileDialog1.FileName))

{
    // Use writer here.
}
让我尝试一下,看看会发生什么...谢谢,
杰瑞
 

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
我遇到了错误...然后我意识到"使用"参数...我需要添加...

使用 System.IO; 到代码的顶部。

所以这是代码...
C#:
if (saveFileDialog1.FileName != "")
            {
                //============================================================================================
                textBox1.Text += "Iarray,";
                for (int myCounter = 0; myCounter < 512; myCounter++)
                {
                    textBox1.Text += Iarray[myCounter].ToString("D2") + ",";
                    using (FileStream fs = new FileStream(saveFileDialog1.FileName,FileMode.OpenOrCreate))
                    {
                        using (StreamWriter writer = new StreamWriter(fs))
                        {
                            writer.Write(Iarray[myCounter].ToString("D2") + ",");
                        }
                    }
                }
                textBox1.Text += "OK";
                using (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate))
                {
                    using (StreamWriter writer = new StreamWriter(fs))
                    {
                        writer.Write("OK");
                    }
                }
                //============================================================================================
                textBox1.Text += "\r\n" + "Qarray,";
                for (int myCounter = 0; myCounter < 512; myCounter++)
                {
                    textBox1.Text += Qarray[myCounter].ToString("D2") + ",";
                    using (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate))
                    {
                        using (StreamWriter writer = new StreamWriter(fs))
                        {
                            writer.Write(Qarray[myCounter].ToString("D2") + ",");
                        }
                    }
                }
                textBox1.Text += "OK";
                using (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate))
                {
                    using (StreamWriter writer = new StreamWriter(fs))
                    {
                        writer.Write("OK");
                    }
                }
                //============================================================================================
            }

当我运行它时...我只会得到几个字符...但是它应该回显文本框中的内容...换句话说...我应该得到...
Iarray,-12,-09,-16,07,29,-14,-26,-08,01,10,-06,-04.02,-04,-03,-04.10,-24,13.33,-09 ,-14.01,-01,-04,-02,13,08,18,06,-08,-09.09,-03,03,14,30,07,14,03,-11,-27,-21 ,10,14,17,-08,-16,-23,-13,-02,11,15,09,-17,-25,-13,24,10,-15,-06.05,-16, -13.02,-23,-15,-15,-10,-17,00,16,28,14,01,-06,-07,-16,06,10,11,-02,-05.20, - 09,02,10,-14,-03,30,31,07,14,04,-04,-11,-05,-09,-07,-04.00,-21,-05,-01,02 ,04,-07,-10,-14,-01,-07,04,17,-06,-03,29,08,-02.02,-01,03,03,06,23,08,-28 ,00,04,08,10,08,-10,00,03,12,07,-18,-12.13,19,12,34,10,-05,-02.16,-01,-09,10, 40,02,-33,-07,05,00,-07,08,25,02,-08,-20,-08.01,-16,01,05,-05.04,-05,-12,-01 ,12,18,-07.15,-10,-06,13,04,16,-05,-24,-01,-07,15,07,-09,-01,00,04,-08.01, - 05,02,23,07,-16,-27,-05.12,10,-04,11,17,-01,-05,-13,-10,10,10,04,-11,-05, 12,23,23,01,-12,-14,-11,00,11,10,03,15,06,05,00,-03,-04,22,15,01,-17,-24 ,-09,-17,-16,05,10,26,-17,-05,-08,00,04,16,-17,-04.21,-04,-18,-14,-22,04 ,17,-02,29,13,-21.03,-03,28,13,-17,-29,-05,24,13,05,07,-01.09,-09,-13,23,23, -03,-07,00,06,-01.06,-13,-01 ,-24,-06.01,-09,29,18,-02,22,32,02,03,-02.13,-20,-04.10,-05,05,36,06 - 11.01,-08,08, 05,10,05,08,21,13,-08.01,-18,-17,23,15,16,21,-15,-01,26,23,16,-08,-13,-17, -14,04,04,-29,-17,-23,-05,-03,-05.05,-17,-05,-01,05,01,-08,-04,05,04,-21 ,-14.14,-10.03,-14,16,01,-25,-08,-01,00,15,-07,-12,07.02,-13,04,04,-11,-05,12, 29,-04,-22,-11.12,-05,-28.07,-01,-09.04,-13,-13,23,18,08,10,-05,14,08,-09.11,-07, 14,23,01,09,04,16,04,-07,-16,-13,15,-10,04,06,01,-09,-25,-02,-28,11,38, -09,03,36,02,-26,04,06,09,30,17,00,13.15,-18,-17,-19.09,-07,-02.08,-07,06,32,16, 25,-01.02,-09,04,11,-03,21,03,02,-18,-10,07,17,04,-06,15,17,08,-12,-01.11,-22 ,-11,-12,-02.10, - 25,-18,04,24,05,-23,-04,-17,-06,-17,-24,08,19,-27,-18, 13,10,-04,-02, - 25,02,14,02,-07,02,06,00,-02,-03,03,07,-13,-28,-08,30,03 ,04,07,01,-02, - 09,-05,08,33,OK
Qarray,28,-03,-07,-21,14,11,-04.06,-29,-01,35,09,-18,-06,01,28,15,02,-04, - 05, 28,01,-21,09,01,06,-03,-21,-09.06,-07,-08,-28,-08,31,32,09,-14,-09,04,-02 ,-35,-24,-09,-03,-01.07,-17,-12,05,06,22,-09,-19,-04.19,-05,-08,12,16,-03, -11,-14,-32,-44,-29,-02,19,00,-18,-09,-12,-23,-04,-01,-01,14 -08,-16 ,13,00,-07,-13,-09,-20.04,-02.00,-17,08,20,-01,-02,-23.07,25.28,-19,-05.05,-09,12,04 ,00,-01,-07,-22,-07,-01.26,-04,-11,-05,02,21,13,-10,-06,-08,36,40,11,-10 ,16,23,29,-01,-08,-02,-14,-06.11,-07,-07,-01,-01,-09,-19,-11,10,27,17, - 22,-02,16,08,12,06,15,35,12,19,-06,14,04,-11,14,16,12,13,00,28,30,19,08, - 08,-16,-01,-05,07,19,31,28,-03,-22,-15,16 -01,-04,05,09,08,-11,-05,-01.07 -02,-07,01,06,15,02,-13,-01,27,22 - 05,-08,-01,05,01,-11,-16.07,-05,07,30, 13,-13,-07.03,-09,-03.09,-09,-05,09.12,-04,-12,16,26,06,-11,03,01,14,30,-05,-22 ,00,07,06,-11,-21.09,-14,-18,-20,-11.03,-03,01,04,-10,-15,-09,05,10,-17,10, 00,11,02,09,-09,-07,17,15,03,-15,-05.19,-04,-05,-13,-09,23,08,-11,-05,-03 -03,-09.06,-01,-18,-12,-03,-21,-0 9,08,09,15,-29,-02,-07,-20,-10,-29,05,14,07,04,09,18,13,-09,05,16,09,09 ,13,33,04,-30,-07,13,06,00,08,06,14,15,-14,-17,02,10,02,-24,-08.18,-06,-17 ,-05,19,05,-14,09,09,09,03,16,-06,-02,21,07,08,12,03,-33,-16.05,-02,01,15, 12,-11,01,03,-05,-10.03,-04,-21,-16,12,21,12,-18,-22,12,09,02,-21,-06.19,-10.06 ,-20,-29,-07.09,-15,-28,-23,-04,17,17,07,-18,07,03,-10,04.09,-13,-02,19,10, -14,-07,-30,-10.15,-04,-13,-20,00,13,10,-07,-06, - 08,35,22,-10,13,26,10, - 07,-01,11,18,-18.15,-08,-12,23,00,13,16,11,06,00,-03,17,14,-30,-31,08,13, - 01,12,11,-21,-07,11,12,12,00,05,22,13,-05,-02,18.13,-04.13,-03,-12,13,17,-20, -25,14,20,21,09,-11,19,30,-15,-17,-18, - 19,-11,08,10,-18,-04,23,32,18,06 ,12,28,-07,-02,11,08,-17,-31,-06,21,06,-19,-24,10,17,-23,-01,31,08,-08 ,-06,17,05,-18,-27,-05,-01,03,10,09,14,02,-19,12,12,11,OK

但是我实际上在创建的文件中得到的是...

我不知道为什么它不起作用。:麻木:
 
Last edited:

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
我遇到了错误...然后我意识到"使用"参数...我需要添加...

使用 System.IO; 到代码的顶部。

这实际上与使用using语句创建StreamWriter无关。完全和唯一地,当在C#代码中引用类型时,您必须使用该类型的名称空间来限定该类型,或者在文件级别导入该名称空间。
 

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
我没有看到您的帖子...我在上面添加了更多详细信息... StreamWriter正在运行...至少没有失败...但是它没有输出预期的数据。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
我没有看到您的帖子...我在上面添加了更多详细信息... StreamWriter正在运行...至少没有失败...但是它没有输出预期的数据。

您是否调试了代码?不要只读它;观看动作。逐行处理它,并确保它在每个步骤中都能达到您的期望,并且每个表达式的计算结果都与您的期望相符。一旦现实与预期有所不同,您就知道已经找到了一个问题,然后可以使用一些实际有用的信息来分析原因。
 

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
这就是我感到困惑的地方……我正在并行运行这些操作……

更新文本框;
更新文件;
...
...
更新文本框;
更新文件;
...
...

然后...文本框与文件完全不同...文本框是完美的...但是文件仅包含几个字符。
我可以生成一个充满数据的文本框...然后将整个文本框输出为一个长字符串...但是我正在尝试正确地学习输出方法...并且我认为这是在以某种方式编写文本,然后将其删除并覆盖它。请记住,目前,我的整个C#经验还不到12个小时……试图(反对)在星期四之前开发出一个APP。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
我想您打开FileStream的方式会覆盖现有文件。如果要追加,则可能必须明确指定。

尽管您所做的并不是完全正确,但是为什么您可以先创建FileStream然后再创建StreamWriter,而您只需创建StreamWriter并将其传递给文件路径呢?
 

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
所以把这个放一次
C#:
使用 (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate))

那就用这个

C#:
使用 (StreamWriter writer = new StreamWriter(fs))
                        {
                            writer.Write(somestring);
                        }

哪里需要?我会尝试的...
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
所以把这个放一次
C#:
使用 (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate))

那就用这个

C#:
使用 (StreamWriter writer = new StreamWriter(fs))
                        {
                            writer.Write(somestring);
                        }

哪里需要?我会尝试的...

不!你没听根本不要创建FileStream。只需创建StreamWriter。如果您打算连续多次写入文件,则只需打开一次即可,例如
使用 (var writer = new StreamWriter(filePath))
{
    writer.Write("...");

    // ...

    writer.WriteLine("...");

    // ...

    writer.Write("...");
}
如果您打算在两次写入之间关闭文件,请确保您指定在第二次及以后打开文件时要附加的文件,例如
// Overwrite an existing file the first time.
using (var writer = new StreamWriter(filePath))
{
    writer.WriteLine("...");
}

// ...

// Append to the existing file the second time.
using (var writer = new StreamWriter(filePath, true))
{
    writer.WriteLine("...");
}
 

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
如果我敲了足够长时间的头部,它最终会粘住。 :friendly_wink:
非常感谢您的帮助...耐心等待...这次效果很好...

C#:
[COLOR=#0000ff]if [/COLOR](saveFileDialog1.FileName != [COLOR=#a52a2a]""[/COLOR])
            {
                [COLOR=#008000]//============================================================================================
                // - Overwrite existing file data (First time)[/COLOR]
                [COLOR=#0000ff]using[/COLOR] ([COLOR=#0000ff]var[/COLOR] writer = [COLOR=#0000ff]new[/COLOR] [COLOR=#008080]StreamWriter[/COLOR](myfile))
                {
                    writer.WriteLine([COLOR=#a52a2a]"Data Start"[/COLOR]);
                }
                [COLOR=#008000]//============================================================================================[/COLOR]
                textBox1.Text += [COLOR=#a52a2a]"Iarray,"[/COLOR];
                [COLOR=#008000]// - Append more text[/COLOR]
                [COLOR=#0000ff]using[/COLOR] ([COLOR=#0000ff]var[/COLOR] writer = new [COLOR=#008080]StreamWriter[/COLOR](myfile, [COLOR=#0000ff]true[/COLOR]))
                {
                    writer.Write([COLOR=#a52a2a]"Iarray,"[/COLOR]);
                }
               [COLOR=#0000ff] for [/COLOR]([COLOR=#0000ff]int[/COLOR] myCounter = 0; myCounter < 512; myCounter++)
                {
                    textBox1.Text += Iarray[myCounter].ToString([COLOR=#a52a2a]"D2"[/COLOR]) + [COLOR=#a52a2a]","[/COLOR];
                    [COLOR=#008000]// - Append more text[/COLOR]
                    [COLOR=#0000ff]using[/COLOR] ([COLOR=#0000ff]var[/COLOR] writer = new [COLOR=#008080]StreamWriter[/COLOR](myfile,true))
                    {
                        writer.Write(Iarray[myCounter].ToString([COLOR=#a52a2a]"D2"[/COLOR]) + [COLOR=#a52a2a]","[/COLOR]);
                    }
                }
                textBox1.Text += [COLOR=#a52a2a]"OK"[/COLOR];
                [COLOR=#0000ff]using [/COLOR]([COLOR=#0000ff]var[/COLOR] writer = new [COLOR=#008080]StreamWriter[/COLOR](myfile, [COLOR=#0000ff]true[/COLOR]))
                {
                    writer.WriteLine([COLOR=#a52a2a]"ok"[/COLOR]);
                }
                [COLOR=#008000]//============================================================================================[/COLOR]
                textBox1.Text += [COLOR=#a52a2a]"\r\n"[/COLOR] + [COLOR=#a52a2a]"Qarray,"[/COLOR];
              [COLOR=#008000]  // - Append more text[/COLOR]
                [COLOR=#0000ff]using[/COLOR] ([COLOR=#0000ff]var[/COLOR] writer = [COLOR=#0000ff]new[/COLOR] [COLOR=#008080]StreamWriter[/COLOR](myfile, [COLOR=#0000ff]true[/COLOR]))
                {
                    writer.Write([COLOR=#a52a2a]"Qarray,"[/COLOR]);
                }
                [COLOR=#0000ff]for[/COLOR] ([COLOR=#0000ff]int[/COLOR] myCounter = 0; myCounter < 512; myCounter++)
                {
                    textBox1.Text += Qarray[myCounter].ToString([COLOR=#a52a2a]"D2"[/COLOR]) + [COLOR=#a52a2a]","[/COLOR];
                    [COLOR=#008000]// - Append more text[/COLOR]
                    [COLOR=#0000ff]using[/COLOR] ([COLOR=#0000ff]var[/COLOR] writer = new [COLOR=#008080]StreamWriter[/COLOR](myfile, [COLOR=#0000ff]true[/COLOR]))
                    {
                        writer.Write(Qarray[myCounter].ToString([COLOR=#a52a2a]"D2"[/COLOR]) + [COLOR=#a52a2a]","[/COLOR]);
                    }
                }
                textBox1.Text += [COLOR=#a52a2a]"OK"[/COLOR];
                [COLOR=#0000ff]using[/COLOR] ([COLOR=#0000ff]var[/COLOR] writer = new [COLOR=#008080]StreamWriter[/COLOR](myfile, true))
                {
                    writer.WriteLine([COLOR=#a52a2a]"ok"[/COLOR]);
                }
                [COLOR=#008000]//============================================================================================[/COLOR]
            }

稍后,我将看做一个子例程来进一步压缩它……但是现在……它正在处理数据……所以我可以继续。
再次感谢!
杰瑞

...是的...我有足够的能力为所有代码加色...:-/
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
如果这只是一个学习练习,那么您显然可以做任何事情来学习自己想要的东西,但是,在一个真正的应用程序中,您当然不会像这样在循环中一直打开和关闭相同的文件。您可能已经意识到这一点,但是我想我已经把它放在那里了,以防万一。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
...是的...我有足够的能力为所有代码加色...:-/

别。这实际上使生活更加困难。只需使用我做过的代码格式化标签即可自动突出显示语法,即

[xcode = c#]您的代码在这里[/ xcode]
 

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
我知道...但是到目前为止...我还没有弄清楚怎么做...如果我可以使这个应用程序正常工作...虽然草率...我可以竞标收集工作数据并整理成报告...在将来的某个日期...我可以将其清理并作为专业应用程序转售。但是现在...我比其他任何东西都更需要数据...

用来完成这项工作的设备和软件已经不复存在了……有人写这个应用程序给我报价12,000.00美元。

到目前为止,我的总投资大约是我20小时的时间...所以我称之为胜利。

谢谢,
杰瑞
 

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
别。这实际上使生活更加困难。只需使用我做过的代码格式化标签即可自动突出显示语法,即

[xcode = c#]您的代码在这里[/ xcode]

哦,太酷了! (我只知道[CODE]标签...)

感谢那!
杰瑞

让我测试一下...
// - Append more text
                    using (var writer = new StreamWriter(myfile,true))
                    {
                        writer.Write(Iarray[myCounter].ToString("D2") + ",");
                    }
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
我知道...但是到目前为止...我还没有弄清楚如何不这样做。
只需使用单个“ using”块,然后将其他所有内容放入其中即可。这:
if (saveFileDialog1.FileName != "")
{
    using (var writer = new StreamWriter(myfile))
    {
        writer.WriteLine("Data Start");
    }

    textBox1.Text += "Iarray,";

    using (var writer = new StreamWriter(myfile, true))
    {
        writer.Write("Iarray,");
    }

    for (int myCounter = 0; myCounter < 512; myCounter++)
    {
        textBox1.Text += Iarray[myCounter].ToString("D2") + ",";

        using (var writer = new StreamWriter(myfile, true))
        {
            writer.Write(Iarray[myCounter].ToString("D2") + ",");
        }
    }

    textBox1.Text += "OK";

    using (var writer = new StreamWriter(myfile, true))
    {
        writer.WriteLine("ok");
    }

    textBox1.Text += "\r\n" + "Qarray,";

    using (var writer = new StreamWriter(myfile, true))
    {
        writer.Write("Qarray,");
    }

    for (int myCounter = 0; myCounter < 512; myCounter++)
    {
        textBox1.Text += Qarray[myCounter].ToString("D2") + ",";

        using (var writer = new StreamWriter(myfile, true))
        {
            writer.Write(Qarray[myCounter].ToString("D2") + ",");
        }
    }

    textBox1.Text += "OK";

    using (var writer = new StreamWriter(myfile, true))
    {
        writer.WriteLine("ok");
    }
}
变成这个:
if (saveFileDialog1.FileName != "")
{
    using (var writer = new StreamWriter(myfile))
    {
        writer.WriteLine("Data Start");

        textBox1.Text += "Iarray,";

        writer.Write("Iarray,");

        for (int myCounter = 0; myCounter < 512; myCounter++)
        {
            textBox1.Text += Iarray[myCounter].ToString("D2") + ",";

            writer.Write(Iarray[myCounter].ToString("D2") + ",");
        }

        textBox1.Text += "OK";

        writer.WriteLine("ok");

        textBox1.Text += "\r\n" + "Qarray,";

        writer.Write("Qarray,");

        for (int myCounter = 0; myCounter < 512; myCounter++)
        {
            textBox1.Text += Qarray[myCounter].ToString("D2") + ",";

            writer.Write(Qarray[myCounter].ToString("D2") + ",");
        }

        textBox1.Text += "OK";

        writer.WriteLine("ok");
    }
}
假设您要在TextBox和文件中放入相同的文本,我倾向于使用StringBuilder创建单个String,然后将其一次性分配给TextBox的Text,然后对File进行一次调用.WriteAllText写出整个文件。
 

Askjerry

成员
已加入
2014年8月25日
留言内容
10
编程经验
10+
好的,我知道了...让我修改代码并进行一些修改...下一步将是使它自动从设备输入中踢出数据...但我对如何打印流有效...我将其压缩下来...谢谢!!!

编辑 -我把您的代码放在那里了……完美。 (我很感激!)
 
Last edited:

图马汤加

成员
已加入
2014年8月30日
留言内容
6
编程经验
3-5
您也可以将大多数内容缩短为(见下文)。
不需要遍历整个数组(我认为)
//concatenate the Array to a string, we need some Linq here, cause the default string.Join accepts only string[], but this could be done with a separate function too, to reduce redundant code                
                string strIarrayStart = "Iarray,";
                string concatenatedIarray = string.Join(",", Iarray.Select(x => x.ToString()).ToArray());
                //default end string for a line
                string strOkay = ",ok";
                //default starting for Qarray
                string strQArrayStart = "Qarray";
                //concatenate the Array to a string
                string concatenatedQarray = string.Join(",", Qarray.Select(x => x.ToString()).ToArray());
                //textboxstring
                string strbox = strIarrayStart + concatenatedIarray + strOkay.ToUpper() + "\r\n" + strQArrayStart + concatenatedQarray + strOkay.ToUpper();
                //string to write to file
                string strFile = strIarrayStart + concatenatedIarray + strOkay.ToLower() + "\r\n" + strQArrayStart + concatenatedQarray + strOkay.ToLower();
                textBox1.Text += strbox;
                using (var writer = new StreamWriter(myfile))
                {
                    writer.Write(strFile);
                }
 
最佳 底部