【发布时间】:2014-11-14 15:39:52
【问题描述】:
我在我的 C# 应用程序中编写了一个函数,当 "0" 到来时,它应该删除整行。 但我不知道我的输出文本文件没有删除它。
我该如何解决这种情况。
代码sn-p:
public void do_name()
{
string[] search_text = new string[] { "PCB", "DOC", "PCB1", "DOC1" };
string old;
StringBuilder sb = new StringBuilder();
using (StreamReader sr = File.OpenText(textBox1.Text))
{
while ((old = sr.ReadLine()) != null)
{
if (old.Contains(search_text[0]) || old.Contains(search_text[1]) ||
old.Contains(search_text[2]) || old.Contains(search_text[3]) ||
old.Split(" ".ToArray()).Equals("0"))
//here delete's the line where, "PCB", "DOC", "PCB1", "DOC1" is coming.
//but not '0"
continue;
else
sb.AppendLine(old);
}
sr.Close();
}
File.WriteAllText(textBox1.Text, sb.ToString());
}
我的输入文本文件如下所示:
"CN5" "210-0141" "PHOENIX/8/150/V/F" "353.441" "115.951"
"CN8" "210-0141" "PHOENIX/8/150/V/F" "317.881" "115.824"
"CN9" "210-0141" "PHOENIX/8/150/V/F" "265.176" "115.951"
"*1" "210-0150" "" "0" "0"
"*10" "210-0150" "" "0" "0"
"*11" "210-0150" "" "0" "0"
"*12" "210-0150" "" "0" "0"
"*13" "210-0150" "" "0" "0"
"*14" "210-0150" "" "0" "0"
"*15" "210-0150" "" "0" "0"
【问题讨论】:
-
"0" is coming.到底是什么意思? -
==和.Equals之间存在区别 Stacy 一个比较对象,另一个比较简化的值 -
@FlorianF。在我的输入文本文件中......会有这样的“0”///所以我需要删除这一整行。当“0”出现时!
-
使用调试器..并逐步执行代码..您也不需要新建字符串[],因为您已经使用值对其进行了初始化,所以这也可以使用相同的
string[] search_text = { "PCB", "DOC", "PCB1", "DOC1" }; -
为什么不提前检查然后
if(old[3] == 0.ToString() || old[4] == 0.ToString(){ continue;}你的逻辑向后看..这些与输入文件有什么关系"PCB", "DOC", "PCB1", "DOC1"
标签: c# string text text-files