使用 streamreader(如果找到特殊字符,如何跳过一行)?
Using streamreader (how do I skip a line if a special character is found)?
我目前正在使用 streamreader 和 filestream 读取 txt 文件并将其转储到列表框中。此文本文件中每隔一行包含一个特殊字符,即大括号。例如{ 或 }
我想知道如何跳过将所有包含“{}”的行读入我的列表框。但我还是喜欢流式传输文本文件的其余部分。
目前,这就是我在代码中使用的内容。但显然它仍然在写带有花括号的行。任何帮助将不胜感激。
private void ReadUsingStreamReader()
{
char[] chars = { '{', '}' };
string characters = new string(chars);
string FileName = "Path To File";
using (FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read))
{
using (StreamReader sr = new StreamReader(fs))
{
while (!sr.EndOfStream)
{
string line =sr.ReadToEnd();
string[] readText = File.ReadAllLines(FileName);
foreach(string FileText in readText)
{
if (FileText.Contains(characters))
{
//Do nothing
}
else
{
listBox1.Items.Add(FileText);
}
}
}
}
}
好的,我更改了代码,这里似乎工作正常。
private void ReadUsingStreamReader()
{
string FileName = "Path To File";
char[] chars = { '{', '}' };
string characters = new string(chars);
using (StreamReader sr = new StreamReader(FileName))
{
while (!sr.EndOfStream)
{
string line = sr.ReadToEnd();
string[] readText = File.ReadAllLines(FileName);
foreach (string FileText in readText)
{
foreach (char c in characters)
{
if (FileText.Contains(c)) continue;
listBox1.Sorted = true;
listBox1.Items.Add(FileText);
break;
}
}
}
}
}
您可以分别检查每个字符:
foreach(string FileText in readText)
{
foreach(char c in chars)
if (FileText.Contains(c)) continue;
....
}
此外,我会逐行读取流...
string line = sr.ReadLine();
我目前正在使用 streamreader 和 filestream 读取 txt 文件并将其转储到列表框中。此文本文件中每隔一行包含一个特殊字符,即大括号。例如{ 或 }
我想知道如何跳过将所有包含“{}”的行读入我的列表框。但我还是喜欢流式传输文本文件的其余部分。
目前,这就是我在代码中使用的内容。但显然它仍然在写带有花括号的行。任何帮助将不胜感激。
private void ReadUsingStreamReader()
{
char[] chars = { '{', '}' };
string characters = new string(chars);
string FileName = "Path To File";
using (FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.Read))
{
using (StreamReader sr = new StreamReader(fs))
{
while (!sr.EndOfStream)
{
string line =sr.ReadToEnd();
string[] readText = File.ReadAllLines(FileName);
foreach(string FileText in readText)
{
if (FileText.Contains(characters))
{
//Do nothing
}
else
{
listBox1.Items.Add(FileText);
}
}
}
}
}
好的,我更改了代码,这里似乎工作正常。
private void ReadUsingStreamReader()
{
string FileName = "Path To File";
char[] chars = { '{', '}' };
string characters = new string(chars);
using (StreamReader sr = new StreamReader(FileName))
{
while (!sr.EndOfStream)
{
string line = sr.ReadToEnd();
string[] readText = File.ReadAllLines(FileName);
foreach (string FileText in readText)
{
foreach (char c in characters)
{
if (FileText.Contains(c)) continue;
listBox1.Sorted = true;
listBox1.Items.Add(FileText);
break;
}
}
}
}
}
您可以分别检查每个字符:
foreach(string FileText in readText)
{
foreach(char c in chars)
if (FileText.Contains(c)) continue;
....
}
此外,我会逐行读取流...
string line = sr.ReadLine();