如何在一行开头的文本文件中跳过包含分号的行?我正在阅读一个带有服务器名称的文本文件。我想在一行的开头加一个分号,以便在服务器进入维护模式时将其注释掉。
答案 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(";"));
)