问题描述
本人想编一个工具,大概的功能就是:1.点击按钮1导出一个txt文件privatevoidbutton1_Click(objectsender,EventArgse){System.Diagnostics.Processp=newSystem.Diagnostics.Process();p.StartInfo.FileName="cmd.exe";//要执行的程序名称p.StartInfo.UseShellExecute=false;p.StartInfo.RedirectStandardInput=true;//可能接受来自调用程序的输入信息p.StartInfo.RedirectStandardOutput=true;//由调用程序获取输出信息p.StartInfo.CreateNoWindow=true;//不显示程序窗口p.Start();//启动程序//向CMD窗口发送输入信息:p.StandardInput.WriteLine("msinfo32.exe/reportc:\sysinfo.txt");//建立sysinfo文件}2.点击按钮2读取这个文件FileStreamfs=newFileStream("c:\sysinfo.txt",FileMode.Open,FileAccess.Read);StreamReadersr=newStreamReader(fs);sr.BaseStream.Seek(0,SeekOrigin.Begin);stringstr=sr.ReadToEnd();this.textBox1.Text=str;sr.Close();fs.Close();3.读取文件中可用的内容之后显示到textBOX前两步已经完成,可以读取全部内容到TextBOX但是我想显示特定的一行例如:**********[系统摘要]项目值OS名称MicrosoftWindows7专业版版本6.1.7601ServicePack1内部版本7601其他OS描述不可用OS制造商MicrosoftCorporation系统名称SUWZ-PC***********上面信息执行显示OS名称和版本那两行,改如何实现呢。求大神帮忙了。谢谢!!!
解决方案
解决方案二:
那就别ReadToEnd一行一行读,只把你要的那2行追加进字符串里呗或者先Split('n'),把字符串按换行分割成数组,然后把你想要的那2行重新拼接个字符串显示
解决方案三:
你只能从所有行中,判断哪一行是你要的,然后显示,当然可以用正则选择
解决方案四:
版主的回复对我有点启发,我先去试试。多谢了!嘿嘿
解决方案五:
使用File.ReadAllLines();读取到字符串数组。
解决方案六:
引用4楼duanzi_peng的回复:
使用File.ReadAllLines();读取到字符串数组。
再根据index取字符串