Канальна пересилання даних за допомогою консолі в Visual C # (Sharp)

Так як для введення даних консольні додатки в основному використовують клавіуру, то вони не відрізняються гарною інтерактивністю Головне достоїнство коольних додатків полягає в їх можливостях динамічно обєднувати маніпяціі потоками даних у процесі, що називається канальної пересиланням даних (piping)

Для прикладу передбачення номерів лотерейних квитків консольний додаток TextProcessor отримує і поставляє дані за допомогою каналу (рис Ю1) Даие поставляються з файлу по каналу в консольний додаток, яке маніпірует ними, після чого поставляє їх виходить каналу, який в свою чергу пересилає їх іншому консольного додатком

Рис 101 Застосування каналів для обробки даних

Додаток TextProcessor зчитує раніше обрані лотерейні номери з ФАА, впорядковує їх і видаляє можливі дублікати Програму не цікавить, яким чином будуть використані оброблювані нею дані Її призначення коштує в зчитуванні, впорядковування і запису семантично правильних даних

Дані з консолі можна зчитувати двома способами:

• надати додатком у вигляді аргументу шлях до файлу, який необхідно прочитати

• переслати дані консольного додатку від іншої програми по каналу

У розглянутому прикладі буде реалізована можливість приймати потоки даних, що поставляються обома способами

Зчитування файлу

Зчитування з файлу є найпростішим програмним способом отримання даних Для цього потрібно тільки вказати імя необхідного файлу в параметрі кандной рядка Наприклад, щоб просто завантажити файл lottotxt в програму TextProcessor, застосовується така команда:

TextProcessorexe lottotxt

У цій команді додатком TextProcessorexe передається один параметр Коману рядки: lottotxt Для розділення декількох параметрів командного рядка застосуються простий прогалину При роботі з Windows це є проблемою, т к в цій операційній системі пробіл є легітимним символом ідентіфікора шляху Наприклад, наступний шлях буде порахований за два параметри: TextProcessorexe c: \ My Documents \ user \ lottotxt

Пробіл між му і Documents вказує консолі, що в команду поставляються два аргументи Дана проблема вирішується укладенням шляху в лапки: TextProcessorexe c: \ My Documents \ user \ lottotxt

Крім шляху, в команді додатком може також поставлятися інша інформація:

TextProcessorexe -count 10 lottotxt

У даному випадку для параметра-coun t потрібно надати значення, яке в цьому прикладі дорівнює 10 Зазвичай опції командного рядка вказуються у форматі пари ключ / значення, т к опції перераховуються в довільному порядку Іскленіем є останній параметр, в якому зазначаються дані, що підлягають обробці

ПРИМІТКА

Додаткову інформацію про комбінаціях опцій і параметрів командного рядка і можливостях консолі можна подивитися в Інтернеті за такою адресою http://enwikipediaorg/wiki/Command_line_interface

Пересилання даних по каналу

Інше рішення полягає у використанні команди, яка зчитує файл і песилает його вміст по каналу в потік Консольний додаток зчитує потік і обробляє дані Далі наводиться приклад команди для пересилання даних по каналу Операція пересилання по каналу вказується символом каналу (|)

type lottotxt | TextProcessorexe

У прикладі команда type (яка зазвичай зчитує вміст файлу і виводить його на екран) зчитує вміст файлу і пересилає на консоль Потім проженіе TextProcessorexe зчитує дані з консолі, обробляє їх і пересает назад на консоль

У табл Ю1 перераховані консольні команди, які у рамках приложе-

ні я TextProcessor

Таблиця 101Команди додаткиTextProcessor

Команда

Опис

TextProcessorехе

Зчитує дані з каналу консолі і запиває назад в канал консолі

TextProcessorexe [ filename ]

Зчитує дані з вказаного в параметрі файлу і записує в канал консолі

TextProcessorexe -out  [filename]

[filename]

У першому параметрі вказується файл, в який записувати дані, а в другому – файл, з якого зчитувати

TextProcessorexe -out  [filename]

Зчитує дані з каналу консолі і запиває в зазначений у параметрі файл Оатіте увагу на те, що операція виведення задається явно В іншому випадку, якщо був би вказаний один ідентифікатор, то консолях додаток не знало б, яку оперу – зчитування або запису – виконувати з вказаним файлом

TextProcessorexe -help

Виводить на екран довідку з використання додатка TextProcessor Довідка також виводиться у разі неправильно зазначених параметрів

Джерело: Гросс К С # 2008: Пер з англ – СПб: БХВ-Петербург, 2009 – 576 е: ил – (Самовчитель)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*