
[英]How to write selected combobox and textbox text to specific line in text file
[英]How to write specific text from text file to textbox?
我想问一下如何从文本文件中编写特定于文本框的文本? 在这种情况下,我正在寻找包含“***”的行,我想列出上面的行。 我试试这个代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
namespace mise2
{
public partial class Form1 : Form
{
private String filePath_output = string.Empty;
private String filePath_input = string.Empty;
public Form1()
{
InitializeComponent();
textBox2.AutoSize = true;
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = @"C:\Users\";
openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog.FilterIndex = 2;
openFileDialog.RestoreDirectory = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
filePath_input = openFileDialog.FileName;
this.textBox1.Text = filePath_input;
}
List<String> lines = new List<String>();
TextReader sr = File.OpenText(filePath_input);
TextWriter sw = File.CreateText(textBox2.ToString());
Int32 ri1 = 0;
String line1 = "";
{
line1 = sr.ReadLine();
lines.Add(line1);
if (line1.IndexOf(@"***") != -1)
{
if (ri1 != 0)
{
line1 = lines[ri1 - 1];
}
}
ri1 = ri1 + 1;
}
sr.Close();
sw.Close();
lines.Clear();
textBox2.Text = filePath_output;
}
}
}
写入文件不是问题我是通过流编写器做到的,但是一旦它是一个文本框,我什至没有开始任何我有错误的方式
事件处理程序的第一部分很好,您从用户那里获得了一条路径。 我会将其分解为一个单独的函数。
现在,让我们假设我们在filepath_input
有那个路径,现在我们来解决问题:
private string FindLineAboveAsterisks(string path)
{
using TextReader sr = File.OpenText(path);
return FindLineAboveAsterisks(sr);
}
private string FindLineAboveAsterisks(TextReader reader)
{
string result = reader.ReadLine(); // Read 1st line
string line = string.Empty;
while ( result is object && (line = reader.ReadLine()) is object ) // Read to EOF
{
if (line.Contains("***"))
{
return result;
}
else
{
result = line;
}
}
return string.Empty;
}
最后,您可以使用结果设置 textbox2:
textBox2.Text = FindLineAboveAsterisks(filepath_input);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.