【串口助手开发】添加保存数据功能,按钮按下保存接收区所有数据

1、功能描述

想要将串口助手接收区域内所有的内容保存下来

并且通过按钮,按下后,跳出一个弹窗,显示保存路径,并且保存txt文件

按下按钮,保存txt数据文件。

2、代码讲解

定义一个全局变量,接收所有的数据

在串口接收函数中,接收数据,并将每次的数据都累加到刚刚定义的全局变量中,

我这里是把接收的数据转换成了字符串,然后再累加的

按钮按下,调用保存数据函数

保存数据函数,按钮按下后,调用此函数,

首先创建一个保存文件对话框,让用户选择保存文件的路径和文件名。

如果用户成功选择了路径(即 ShowDialog 方法返回 DialogResult.OK),

就创建一个 StreamWriter 对象来将之前存储的接收数据 receivedData 写入到用户指定的文件中。

3、代码实现

下面是代码

using System;
using System.IO;
using System.Windows.Forms;

namespace SerialPortAssistant
{
    public partial class Form1 : Form
    {
        private string receivedData = "";  // 存储接收到的数据

        public Form1()
        {
            InitializeComponent();
        }

        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            // 接收串口数据(以字节数组形式)
            byte[] data = new byte[serialPort1.BytesToRead];
            serialPort1.Read(data, 0, data.Length);

            // 将字节数组转换为字符串并累加
            receivedData += System.Text.Encoding.UTF8.GetString(data);
            textBoxReceive.AppendText(System.Text.Encoding.UTF8.GetString(data));  // 在接收区域显示
        }

        private void buttonSave_Click(object sender, EventArgs e)
        {
            SaveData();  // 点击保存按钮时调用保存函数
        }

        private void SaveData()
        {
            // 创建一个保存文件对话框对象
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            // 设置文件筛选器,只显示文本文件(*.txt)
            saveFileDialog.Filter = "Text Files (*.txt)|*.txt";
            // 显示保存文件对话框,并获取用户的选择结果
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                // 使用 using 语句确保在操作完成后正确释放资源
                using (StreamWriter writer = new StreamWriter(saveFileDialog.FileName))
                {
                    // 将接收到的数据写入到用户选择的文件中
                    writer.Write(receivedData);  
                }
            }
         }
    

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值