跳过在文本文件中包含分号的行

时间:2011-09-01 20:33:32

标签: c#

如何在一行开头的文本文件中跳过包含分号的行?我正在阅读一个带有服务器名称的文本文件。我想在一行的开头加一个分号,以便在服务器进入维护模式时将其注释掉。

9 个答案:

答案 0 :(得分:2)

var lines = File.ReadAllLines( path );
foreach( var line in lines )
{
    if( line.StartsWith( ";" ) )
    {
        continue;
    }
    else
    {
        // do your stuff
    }
}

答案 1 :(得分:1)

编辑:好的,我们可以让这更容易......

foreach (var currentLine in File.ReadAllLines(@"C:\somefile.txt"))
{
    if (currentLine.StartsWith(";")) continue;

    // Pretend this is the function you want to do below.
    ProcessLine(currentLine);
}

答案 2 :(得分:1)

if (!textline.StartsWith(";"))
  // do something

答案 3 :(得分:1)

假设您使用的是System.IO.TextReader来自{{3}}的内容,您可以Peek查看下一个字符,看看它是否是分号。否则,请阅读该行并检查字符串的第一个字符。

答案 4 :(得分:1)

试试这个:

        var allLines = System.IO.File.ReadAllLines("SOME-PATH");
        var filteredLines = from l in allLines
            where !l.StartsWith(";")
        select l;

答案 5 :(得分:1)

我知道你在为C#提出这个问题。

在这种情况下,您可以使用字符串类中的startswith,我不确定您的代码是什么,但我认为这可以帮助您:

using System;
using System.IO; 

class Program {
    static void Main( string[] args ) {
        string filePath = @"test.txt";
        string line; 
        string fileContent = "";

        if (File.Exists( filePath )) {
            StreamReader file = null;
            try {
                file = new StreamReader( filePath );
                while ((line = file.ReadLine()) != null) {
                        if (!line.StartsWith(";")){
                                Console.WriteLine( line );
                                fileContent += line;        
                        }
                }
            } finally {
                if (file != null)
                    file.Close();
            }
        }
    }
} 
}

答案 6 :(得分:0)

foreach(string line in readLines()) 
{
   if (line[0] == ';') continue;
   ...   
}

答案 7 :(得分:0)

也许StartWith会有所帮助

string line = null;
using (System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt"))
{
    while ((line = file.ReadLine()) != null)
    {
        if (!line.StartsWith(";"))
        {
            // do thomething
        }
    }
}

答案 8 :(得分:0)

在.NET 4.0中:

  File.ReadLines("c:\test.txt").Where(x => !x.StartsWith(";"));

也许你想要AsParallel

  File.ReadLines("c:\test.txt").AsParallel().Where(x => !x.StartsWith(";"));