Калі заява дапамогу; розны колер пэўных крытэрыяў

Im пачатковец, і калі заявы мая слабасць. У мяне ёсць простая праграма, якая адлюстроўвае файлы імёны, якія знаходзяцца ў вызначанай тэчцы. Тым не менш, некаторыя файлы могуць мець радкі, якія пачынаюцца з СПФ. Я хачу, каб злавіць тыя файлы, якія маюць гэтую пэўную лінію, і адлюстроўваць імя файла ў іншым колеры (пажадана чырвонага колеру). Вось тое, што я да гэтага часу: Любая дапамога будзе высока ацэненая !! Дзякуй!

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);
            }
        }
    }
}
1
Вы кажаце пра імя файла, або ўнутры самога файла.
дададзена аўтар Mitchel Sellers, крыніца
Чаму вы пішаце ў кансолі ў ASP.Net?
дададзена аўтар SLaks, крыніца
у файле. і @SLaks; Так.
дададзена аўтар javasocute, крыніца
@javasocute - Вы не павінны быць кампазітарства да кансолі ў класе System.Web.UI.Page, змяняць свой код, каб ён мае больш сэнсу, што менавіта вы не разумееце, пра калі заяве?
дададзена аўтар Security Hound, крыніца

3 адказы

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:---
"); 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("" + name + "
"; hasLIFT = false; } else Response.Write(name + "
"; } //and can do the same for other array } }
2
дададзена
@javasocute бачыць маё абнаўленне. Я змяніў запіс у кансоль, каб напісаць свой тэкст у адказ на запыт старонкі. гэта павінна дапамагчы вам атрымаць вынікі, якія вы шукаеце
дададзена аўтар Nick Rolando, крыніца
@javasocute я зрабіў яшчэ адно абнаўленне, каб дапамагчы вам наладзіць ваш код правільна ў кодзе-за вашу старонку.
дададзена аўтар Nick Rolando, крыніца
@javasocute Ну, я мяркую, што гэта залежыць ад прычыны, вы пішаце гэтыя імёны файлаў. Вы нават не бачачы выхаду з Console.WriteLine ()? Я думаю, што вы павінны наладзіць карыстацкі пісьменнік для кансолі для гэтага. Вы можаце выкарыстоўваць System.Diagnostics.Debug.WriteLine ( «адладкавыя»); для запісу ў акне высновы ў VS ў адладчык. Але Response.Write() паказвае выхад прама на старонцы незалежна.
дададзена аўтар Nick Rolando, крыніца
Калі ён працуе нармальна, і вы атрымліваеце тое, што вы хочаце, то ўсе сродкі, пайсці на гэта. Падобна на тое, @Miguel можа дапамагчы змена колеру шрыфта там. Шкада, што я змяніў яго адказ ^^ Яго якраз часцей за ўсё выкарыстоўваецца ў asp.net Я лічу,
дададзена аўтар Nick Rolando, крыніца
у той час як ((радок = reader.ReadLine ())! = NULL) {калі (line.StartsWith ( "УЗДЫМ")) Console.ForegroundColor = Console.Color.Red; як з здрабняльнік і Miguels кода. я на правільным шляху з гэтым?
дададзена аўтар javasocute, крыніца
Дзякуй за вашу дапамогу Шродэр, цікава, чаму вы карыстаецеся response.write замест кансолі. Я думаю, мне трэба, каб даведацца ўсю гэтую кансоль і nonconsole рэчы.
дададзена аўтар javasocute, крыніца
Console.WriteLine() працуе проста выдатна. Імёны файлаў адлюстроўваюцца як я хачу, каб яны. Гэта вэб-дадатак, але я думаю, ім не мяркуецца выкарыстоўваць кансоль. ИДК. Ім прыйдзецца шукаць у такога роду рэчы.
дададзена аўтар javasocute, крыніца

Вы можаце змяніць выходную кансоль колеру з дапамогай Console.ForegroundColor <�кода /> ўласцівасці.

Каб ведаць, калі файл ўтрымлівае тэкст, які вы хочаце, вам неабходна адкрыць яго і праглядзець файл.

Тады зрабіце гэта:

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

<�Моцны> Змяніць

Я не заўважыў, што вы спрабуеце пісаць у кансоль ўнутры старонкі сервера ASP.NET ... у гэтым выпадку вы павінны сказаць нам, якія прыкладанні вы ствараеце ... гэта кансольнае прыкладанне, а WebApplication ці яе сайт ... гэта залежыць.

Выкарыстанне кансолі ня падыходзіць для вэб-прыкладанняў.

<�Моцны> EDIT 2

Дарэчы, вы можаце выкарыстоўваць Console толькі ў кансольных прыкладаннях. Кансольнае дадатак з'яўляецца аўтаномным акна прыкладання, які адрозніваецца ад вэб-прыкладанні.

Калі вы калі-небудзь хацелі стварыць кансольнае дадатак, у акне New Project, вы можаце знайсці яго ў раздзеле <�моцны> Windows, катэгорыі, то вы можаце знайсці тып праекта пад назвай кансольнага прыкладання .

1
дададзена

You can do like this inside your foreach loop: if(name.contains("LIFT")) { //make red. }

гэта хоць ёсць пытанне, што ён правярае толькі, калі радок (імя) змяшчае радок LIFT, а не калі радок у пачатку файла. Калі вы хочаце праверыць, калі LIFT знаходзіцца ў самога пачатак імя файла вы павінны выкарыстоўваць некаторыя з камплектацыяй метадаў.

0
дададзена