shmilyshushu 2018-12-25 17:20 采纳率: 66.7%
浏览 309
已采纳

c#想用串口传送文件,并把文件切割以字符串数组显示,但失败了,求助

如题 以下是代码,啥也不会,也是从网上找的代码,自己加了一点。我用x替换原文件的“\r\nNNNN”,并拆分成为字符串数组,但是串口显示时,s还是没有变,还是\r\nNNNN,求高人指点。
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.Ports;

namespace chuankou
{
public partial class Form1 : Form
{
string s = "";
string ss = "";
string[] s_1 = new string[100];

    public Form1()
    {
        InitializeComponent();

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
    public void serialPort_DataReceived(object sender,SerialDataReceivedEventArgs e)
    {

        int count = myserialPort.BytesToRead;
        byte[] data = new byte[count];
        myserialPort.Read(data, 0, count);
         foreach (byte item in data)
         {
             s += Convert.ToChar(item);

         }
            s = s.Replace("\r\nNNNN", "x");

        string[] s_1 = ss.Split(new char[] { 'x'});

    }

    private void button1_Click(object sender, EventArgs e)
    {


        if (!myserialPort.IsOpen)
        {
            myserialPort.Open();
        }
        myserialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
    }

    private void button2_Click(object sender, EventArgs e)
    {
        if (myserialPort.IsOpen)
           myserialPort.Close();
    }

    private void button3_Click(object sender, EventArgs e)
    {
        //timer1.Enabled = true;
       // timer1.Interval = 1000;
        int i;
        for (i = 0; i < s_1.Length; i++)
        {
            if (this.InvokeRequired)
            {


                this.Invoke(new MethodInvoker(delegate { this.textBox1.Text = s; }));
            }
            else

            {
                this.textBox1.Text = s;
            }

        }





    }

    private void timer1_Tick(object sender, EventArgs e)
    {



    }
}

}

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-12-25 13:56
    关注

    s= s.Replace("\r\nNNNN", "x");
    在这个前面调试下,看看是不是有"\r\nNNNN",特别注意转义,你要是不是换行,而是\r\n字面的值,需要双斜杠

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码: