Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从文本文件中检索数据_C# - Fatal编程技术网

C# 如何从文本文件中检索数据

C# 如何从文本文件中检索数据,c#,C#,我在文本文件中逐行添加了所有已确认交易的数据。我想添加搜索功能,用户在其中输入其电子邮件地址,并且必须显示连接到该电子邮件的所有相关交易详细信息 bool writeNextLine = false; StringBuilder sb = new StringBuilder(); // Read the file and display it line by line. using (System.IO.StreamReader file = new System.

我在文本文件中逐行添加了所有已确认交易的数据。我想添加搜索功能,用户在其中输入其电子邮件地址,并且必须显示连接到该电子邮件的所有相关交易详细信息

bool writeNextLine = false;
StringBuilder sb = new StringBuilder();

// Read the file and display it line by line.              
using (System.IO.StreamReader file = new System.IO.StreamReader("record.txt"))
{
    while ((line = file.ReadLine()) != null)
    {
        if (line.Contains(txt_SearchBooking.Text))
        {
            // This append the text and a newline into the StringBuilder buffer       
            sb.AppendLine(line.ToString());

            lbl_result.Text += sb.ToString();
        }
    }
}
但仅显示包含电子邮件的行,其他详细信息不显示

电子邮件位于每个交易详细信息的最后一行

confirmmsg =
      " Transaction # : " + EmployeeIDTextBox.Text + ClientIDTextBox.Text + UniqueIDTextBox.Text + "\r\n"
    + " First Name : " + ClientFirstNameTextBox.Text + "\r\n"
    + " Telephone Number : " + ClientTelephoneNumberTextBox.Text + "\r\n"
    + " Investment : " + investmentamt.ToString("C2") + "\r\n"
    + " Interest : " + (twelvemonthint * 100).ToString() + "%" + "\r\n"
    + " Interest Amount : " + (invesmentcalc(investmentamt, twelvemonthterm, twelvemonthint) - investmentamt).ToString("C2") + "\r\n"
    + " Bonus : " + bonus.ToString("c2") + "\r\n"
    + " Total Returns : " + invesmentcalc(investmentamt, twelvemonthterm, twelvemonthint).ToString("C2") + "\r\n"
    + " E-mail : " + ClientEmailTextBox.Text;

这是写入文本文件的数据。

如果每笔交易都有9行,电子邮件是最后一行,则可以使用file.ReadAllLines和计数器

var lines = File.ReadAllLines("records.txt");
for(int i = 0; i < lines.Length; i++)
{
   var line = lines[i];
   if(line.Contains(txt_SearchBooking.Text))
   {
       //Retrieve the previous lines
       for(int y = i-8; y <= i; y++)
       {               
           lbl_result.Text += lines[y];
       }
   }
}
var lines=File.ReadAllLines(“records.txt”);
对于(int i=0;i对于(int y=i-8;y如果每笔交易都有9行,电子邮件是最后一行,则可以使用File.ReadAllLines和计数器

var lines = File.ReadAllLines("records.txt");
for(int i = 0; i < lines.Length; i++)
{
   var line = lines[i];
   if(line.Contains(txt_SearchBooking.Text))
   {
       //Retrieve the previous lines
       for(int y = i-8; y <= i; y++)
       {               
           lbl_result.Text += lines[y];
       }
   }
}
var lines=File.ReadAllLines(“records.txt”);
对于(int i=0;i对于(int y=i-8;y顾名思义,
ReadLine
读取行。您的
confirmmsg
包含9行。
ReadLine
逐个读取它们。只有第9行包含电子邮件地址,前8行被跳过。就
ReadLine
而言,第9行与前8行之间没有连接ed.共享示例文本文件-仅显示数据在文件中的组织方式。非主题:使用stringbuilder很好,但每次都执行
lbl_result.text+=sb.ToString();
。让stringbuilder收集所有内容并在循环外部执行一次
lbl_result.text=sb.ToString()
顾名思义,
ReadLine
读取行。您的
confirmmsg
包含9行。
ReadLine
逐个读取。只有第9行包含电子邮件地址,前8行被跳过。就
ReadLine
而言,第9行与前8行之间没有连接。共享示例文本文件-仅显示数据在文件中的组织方式。主题外:使用stringbuilder很好,但每次执行
lbl_result.text+=sb.ToString();
都会否定它的优点。让stringbuilder收集所有内容并在循环外执行一次
lbl_result.text=sb.ToString();