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);
            }
        }
    }
}

If语句有帮助;不同的颜色,以一定的标准

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方法。