C# 如何读取特定行的文件
我正在制作一个控制台应用程序,我需要能够从文本文件中写入、搜索和删除条目,我可以将文件写入记事本文件,但基本上就是这样,这就是我必须读取的文件:C# 如何读取特定行的文件,c#,io,console-application,C#,Io,Console Application,我正在制作一个控制台应用程序,我需要能够从文本文件中写入、搜索和删除条目,我可以将文件写入记事本文件,但基本上就是这样,这就是我必须读取的文件: public static void SearchDetails() { Console.WriteLine("Enter ID Number"); string myfile = System.IO.File.ReadAllText(@"C:\\file.txt"); System.Console.WriteLine(myfile); } 这将调
public static void SearchDetails()
{
Console.WriteLine("Enter ID Number");
string myfile = System.IO.File.ReadAllText(@"C:\\file.txt");
System.Console.WriteLine(myfile);
}
这将调出文件中的所有文本,但我需要能够在文件中搜索特定的数字,然后调出下面的三行。如何让它读取输入,使其与文本文件中的数字匹配,然后调出接下来的3行?考虑到您要回答的问题和注释,最终答案将是:
public static void SearchDetails()
{
Console.WriteLine("Enter ID Number");
int Id = 0;
int.TryParse(Console.ReadLine(), out Id);
string[] lines = System.IO.File.ReadAllLines(@"C:\\file.txt");
List<string> IdLines = lines.Where((x, i) => i % 4 == 0).ToList();
int IdLine = IdLines.IndexOf(Id);
if (IdLine != -1)
{ //then result found
//Id is what user searched for or
// string Id = lines[IdLine*4];
//string[] results = lines.Where((x, i) => i > IdLine * 4 && i < IdLine * 4 + 4).ToArray();
for(int i=IdLine*4;i<IdLine*4+4;i++)
System.Console.WriteLine(lines[i]);
}
else
{
Console.WriteLine("no results!");
}
}
publicstaticvoidsearchdetails()
{
Console.WriteLine(“输入ID号”);
int Id=0;
int.TryParse(Console.ReadLine(),out Id);
字符串[]行=System.IO.File.ReadAllLines(@“C:\\File.txt”);
列出idline=line.Where((x,i)=>i%4==0.ToList();
int IdLine=IdLine.IndexOf(Id);
如果(IdLine!=-1)
{//然后找到结果
//Id是用户搜索的内容,或
//字符串Id=行[IdLine*4];
//字符串[]结果=行。其中((x,i)=>i>IdLine*4&&i 对于(inti=IdLine*4;i,你可以对结果做任何你想做的事情,但是像这样的事情是你想要的
// Read the file and display next three lines
System.IO.StreamReader file = new System.IO.StreamReader("c:\\file.txt");
string line;
int lineCnt = 3;
while((line = file.ReadLine()) != null)
{
if (line.Contains(myID) & !bGet)
{
bool bGet = true;
}
if (bGet && lineCnt > 0)
{
bool bGet = true;
Console.WriteLine (line);
lineCnt--;
}
if(lineCnt == 0) {break;}
}
file.Close();
// Suspend the screen.
Console.ReadLine();
当然,您应该在读取行之前处理错误,因为输入的行数可能超过lines@Ved如果答案对您有效,请接受答案。我尝试过这些答案,但我不确定如何从程序中获取要读取的搜索号码。如何在[linenumber]中指定号码?谢谢你的回复,这肯定让我更接近我需要做的事情,但我正在努力的主要事情是能够找到搜索号码的匹配项,例如搜索2将显示ID 2以及下面的3行,不仅仅是行号,你知道怎么做吗?@Ved你说下面的三行是什么意思?你是说全部第0、1、2行?我不明白你的意思