If语句有帮助;不同的颜色,以一定的标准
本文关键字:标准 颜色 If 有帮助 语句 | 更新日期: 2023-09-27 18:12:31
我是初学者,If语句是我的弱点。我有一个简单的程序,它显示位于某个文件夹中的文件名。但是,有些文件可能有以LIFT开头的行。我想捕获那些具有特定行的文件,并以不同的颜色(最好是红色)显示文件名。以下是我到目前为止的情况:任何帮助都会非常感激!!谢谢!
public partial class ShippedOrders : System.Web.UI.Page
{
class Program
{
static void Main()
{
string[] array1 = Directory.GetFiles(@"C:'Kaplan'Replies'");
string[] array2 = Directory.GetFiles(@"C:'Kaplan'Replies'", "*.REP");
Console.WriteLine("---Files:---");
foreach (string name in array1)
{
Console.WriteLine(name);
}
Console.WriteLine("---REP Files: ---");
foreach (string name in array2)
{
Console.WriteLine(name);
}
}
}
}
directory. getfiles (directoryPath)将返回一个字符串数组,其中列出了该目录中的文件名(完整路径)。您将不得不使用返回的字符串数组实际打开并读取每个文件。在循环中逐行读取每个文件,并测试是否有以"LIFT"开头的行。
你为这个网页设置代码隐藏的方式也很时髦。您在页面的部分类中声明了一个类。试着这样设置你的代码:
public partial class ShippedOrders : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.goFiles();
}
public void goFiles()
{
string[] array1 = Directory.GetFiles(@"C:'Kaplan'Replies'");
string[] array2 = Directory.GetFiles(@"C:'Kaplan'Replies'", "*.REP");
System.IO.StreamReader file = null;
string line = "";
bool hasLIFT = false;
Response.Write("---Files:---<br/>");
foreach (string name in array1)
{
file = new System.IO.StreamReader(@name);
while((line = file.ReadLine()) != null)
{
if(line.StartsWith("LIFT"))
{
hasLIFT = true;
break;
}
}
if(hasLIFT)
{
Response.Write("<span style='"color:Red;'">" + name + "</span><br/>";
hasLIFT = false;
}
else
Response.Write(name + "<br/>";
}
//and can do the same for other array
}
}
您可以使用Console.ForegroundColor
属性更改控制台输出的颜色。
要知道文件是否包含你想要的文本,你需要打开它并扫描文件。
然后这样做:
if (fileContainsText) Console.ForegroundColor = ConsoleColor.Red;
else Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine(name);
编辑
我没有注意到你试图在ASP中写入控制台。. NET服务器页面…在这种情况下,你需要告诉我们你正在创建什么样的应用程序……它是控制台应用程序,web应用程序还是网站…这取决于.
Console
的使用不适合web应用程序。
编辑2
顺便说一下,您只能在控制台应用程序中使用Console
。控制台应用程序是一个独立的windows应用程序,它不同于web应用程序。
如果你想创建一个控制台应用程序,在新建项目窗口中,你可以在Windows类别下找到它,然后你可以找到一个名为 console Application的项目类型。
你可以在foreach循环中这样做:if(name.contains("LIFT"))
{
//make red.
}
有一个问题,它只检查字符串(name)是否包含字符串LIFT,而不检查字符串是否在文件名的开头。如果您想检查LIFT是否在文件名的开头,您必须使用一些Trim方法。