Если заявление поможет;разные цвета по определенным критериям - PullRequest
1 голос
/ 27 октября 2011

Я новичок, и если утверждения - моя слабость.У меня есть простая программа, которая отображает имена файлов, которые находятся в определенной папке.Однако некоторые файлы могут иметь строки, начинающиеся с 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);
            }
        }
    }
}

Ответы [ 3 ]

2 голосов
/ 27 октября 2011

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
    }
}
1 голос
/ 27 октября 2011

Вы можете изменить цвет вывода консоли, используя свойство Console.ForegroundColor.

Чтобы узнать, содержит ли файл нужный текст, нужно открыть его и отсканировать файл.

Тогда сделайте это:

if (fileContainsText) Console.ForegroundColor = ConsoleColor.Red;
else Console.ForegroundColor = ConsoleColor.Gray;
Console.WriteLine(name);

EDIT

Я не заметил, что вы пытались писать в консоль на странице сервера ASP.NET ... в этом случае вам нужно сообщить нам, какое приложение вы создаете ... это консольное приложение, Веб-приложение или веб-сайт ... это зависит.

Использование Console не подходит для веб-приложений.

РЕДАКТИРОВАТЬ 2

Кстати, вы можете использовать Console только в консольных приложениях. Консольное приложение - это автономное приложение Windows, которое отличается от веб-приложения.

Если вы когда-нибудь захотите создать консольное приложение, в окне «Новый проект» вы можете найти его в категории Windows , тогда вы можете найти тип проекта с именем Консольное приложение .

0 голосов
/ 27 октября 2011

Вы можете сделать это внутри цикла foreach: if(name.contains("LIFT")) { //make red. }

у него, однако, есть проблема, заключающаяся в том, что он только проверяет, содержит ли строка (имя) строку LIFT, а не находится ли строка в начале имени файла. Если вы хотите проверить, находится ли LIFT в начале имени файла, вы должны использовать некоторые из методов Trim.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...