C#应用实战-每日一练(八):手把手教你如何读取TXT文件中的信息并输出

方法一:使用StreamReader逐行读取文件 

//使用StreamReader逐行读取文件 
//读取TXT文件中的任务单信息
// 方法定义两个out参数来接收解析的数据,并返回一个布尔值表示是否成功  
public static bool ExtractDataFromFile(out string testNum, out string productModel)
{
    testNum = string.Empty;
    productModel = string.Empty;
    string filePath = @"D:\工作\YiJieMes\MesTask\Task.txt";

    try
    {
        // 使用StreamReader逐行读取文件  
        using (StreamReader reader = new StreamReader(filePath))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                // 去除行首和行尾的引号(如果它们存在)  
                line = line.Trim('"');

                if (line.StartsWith("TestNume:"))
                {
                    // 假设值紧跟在冒号和引号之后,直到行尾或下一个引号  
                    testNum = line.Substring("TestNume:".Length).Trim();
                }
                else if (line.StartsWith("ProductModel:"))
                {
                    // 假设值紧跟在冒号和引号之后,直到行尾或下一个引号(但这里没有额外的引号)  
                    productModel = line.Substring("ProductModel:".Length).Trim();
                }

                // 如果两个值都已找到,可以提前退出循环  
                if (!string.IsNullOrEmpty(testNum) && !string.IsNullOrEmpty(productModel))
                {
                    break;
                }
            }
        }

        // 如果两个值都非空,则认为成功  
        return !string.IsNullOrEmpty(testNum) && !string.IsNullOrEmpty(productModel);
    }
    catch (Exception ex)
    {
        // 错误处理  
        Console.WriteLine($"Error reading file: {ex.Message}");
        return false;
    }
}

如下图所示:

方法二:File.ReadAllText读取,读取后反序列Json格式数据,反序列化为MesTaskData类型对象

  //创建一个MesTask类 定义任务单中的属性
  public class MesTaskData
  {
      public string ProductModel { get; set; }//产品编码
      public string KbarCode { get; set; }//MES 条码。
      public uint TestNum { get; set; }//加工的数量。

  }

  
  public static MesTaskData MesTask()
  {
      MesTaskData taskData = new MesTaskData();
      try
      {
          string jsonFilePath = @"D:\工作\YiJieMes\MesTask.txt";          //设置文件地址
          if (File.Exists(jsonFilePath))                           //检查指定的文件路径 (jsonFilePath) 是否存在一个文件
          {
              string jsonContent = File.ReadAllText(jsonFilePath); //读
                                                                   //取指定文件路径 (jsonFilePath) 下的文件内容
              Console.WriteLine(jsonContent);                      //输出文件内容
              MessageBox.Show(jsonContent);

              //反序列Json格式数据
              //将jsonContent字符串中的JSON数据反序列化为MesTaskData类型的对象,并将该对象赋值给taskData变量
              taskData = JsonConvert.DeserializeObject<MesTaskData>(jsonContent);

              string testnum = taskData.TestNum.ToString();
              string kbarcode = taskData.KbarCode;
              string productmodel = taskData.ProductModel;

              message = $"加工数量: {testnum}, MES 条码: {kbarcode}, 产品编码: {productmodel}";
          }
      }
      catch (Exception err) { MessageBox.Show(err.ToString()); }//如果出错 提示报错
      return taskData;

如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值