c#每按一次按钮,逐行读取文件

时间:2016-08-02 02:14:53

标签: c#

我实现了一个连接多个客户端的服务器。服务器读取文本文件并将第一行发送到客户端并等待6秒并发送下一行,依此类推。现在我只想在点击按钮时发送一行。我该怎么做?

在我的按钮事件中,我将该方法放在一个任务中,因为服务器必须处理来自客户端的其他连接请求。

服务器端:

default_url_options[:host] = 'fake-name-92356.herokuapp.com'

1 个答案:

答案 0 :(得分:2)

有两种简单的方法可以做到这一点。

<小时/> 如果Messwerte.txt文件在请求之间没有变化,请使用File.ReadAllLines方法将其内容存储在成员变量中:

private string[] lines = File.ReadAllLines("C:\\Messwerte.txt");
private int nextLine = 0;

然后改变这个:

line = reader.ReadLine() + Environment.NewLine;

对此:

line = lines[nextLine] + Environment.NewLine;
nextLine++;

<小时/> 或者,您不必一次读取所有行,如果文件使用File.ReadLines()方法增长,则更适合:

int lineCount = 0;
foreach (var lineInFile in File.ReadLines("C:\\Messwerte.txt"))
{
   if (lineCount == nextLine) {
       line = lineInFile;
       nextLine++;
       break;
   }
   lineCount++;
}

正如@Slai所指出的,这是实现第二种方法的理想方法:

line = File.ReadLines("C:\\Messwerte.txt").ElementAtOrDefault(nextLine++);