www.sjbac.info
Технические науки — от теории к практике __________________________№ 12 (48), 2015 г
СЕКЦИЯ 2.
ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ
РАСШИРЕНИЕ ВОЗМОЖНОСТЕЙ ОТОБРАЖЕНИЯ ОПЕРАТИВНОЙ ИНФОРМАЦИИ О ВЫПОЛНЕНИИ ПРОЦЕССОВ В КОНСОЛЬНОМ ПРИЛОЖЕНИИ
Барило Илья Иванович
канд. техн. наук, доцент Костромского государственного технологического университета,
РФ, г. Кострома E-mail: mail@barilo.ru
INCREASING ABILITIES TO VIEW OPERATIONAL INFORMATION ABOUT EXECUTION OF THE PROCESS IN THE CONSOLE APPLICATION
Ilya Barilo
Ph.D, assistant professor of Kostroma State Technological University,
Russia, Kostroma
АННОТАЦИЯ
В статье рассмотрены проблемы вывода в лог оперативной информации, состоящей из изменяемых на экране консольного приложения значений; выделены отличия вывода информации при работе консольного приложения в составе пакетного файла и в качестве отдельного приложения, которые позволили предложить вывод промежуточных изменяемых значений в заголовок окна консольного приложения; предложена реализация вывода общего прогресса выполнения приложения; проведено тестирование предложенного решения вывода оперативной информации.
14
ЛГ СибАК
Технические науки — от теории к практике
№12 (48), 2015г.________________________________________www.sibac.info
ABSTRACT
The article discusses the problem outputting in a log information consisting of a values variables using for outputting on the screen console application; marked differences output information when working in a console application as part of a batch file, and as a separate application that allows to offer the output of intermediate variable values to window caption of the console application; proposed implementation of the output overall progress runtime; was tested the proposed solutions of output operational information.
Ключевые слова: консоль; консольное приложение; вывод информации; прогресс; лог; файл.
Keywords: console; console application; output information;
progress; log; file.
В процессе работы консольного приложения [1] часто требуется выводить промежуточные данные, информирующие пользователя о процессе выполнения приложения.
Вывод динамически меняющихся чисел процентов и другой информации требует стирания управляющими символами BACKSPACE [3, с. 3], ранее выведенных чисел процентов для замены их на новые.
Если производится вывод только на экран, то этот способ вполне подходит для реализации отображения меняющихся значений.
Консольные приложения выводят информацию в потоки, которые могут выводится в консоль или в файлы.
Стандартными потоками вывода информации из консольных приложений, согласно справочной информации в MSDN [4], являются:
1. stdout - вывод;
2. stderr - вывод ошибок.
При запуске консольных приложений информацию из потоков можно направить в файлы [6].
Если вывести информацию в файл, то в него будут сохранены все выведенные на экран символы, включая управляющие символы BACKSPACE.
На рис. 1 представлены фрагменты файла, в который был выведен процесс обновления процентов и вариант обновления представления промежуточной информации этапа верификации.
15
Технические науки — от теории к практике ______________________________№ 12 (48), 2015 г
Проценты:
verifying: ЕОЕНООШЗ o%BDGD[S) 5%(Ш[1)Щ)Ш1 ю%ЕШШЕШЗ 15%(ПШ1]0ШЮ 20%СЗСШШ[аО
О iSlIn'-lf^l 'ЗП9е[Г"11п'1|!>'11<^1 ^ ||?°11и'1 4 П^1г[г}1б«11|Г|)гл1 4 ^^П?1П|л*11л‘’||лг1 ^О”1ll.igifHFI ^ ^ЗеП»1|.'!"|1 ь«Но -1
60%fHSODE] б5%[Ш1Е1ШШйП 70%ШИШ] 75%(ШС1ШВ0 80%ЕШПОХШШ] 85%ЕШСП]00Е11 90%ЕНШЕНШ 95%ШШ100%
Информация:
Verifying: 1(^11°-'|]1?1Га^1^71(п111г!11ПТ11^1[^[Г'Г.11 of Ю of
ю 0DЙШОПШНЕЭЕОШИШШШЗз of ю ШЗ[ШООЕШ[ШШЗОЭШ[Ж1СЗ[134 of ю ПХ1ППГШ1~Ж1
ШШ5 of 10 ЕШС0С1)110(1(ШЩ(Ш][1]б of ю Ш)Щ|1ШУШШ|£|[щ)01]ОШ7 of ю
Щ][|Ш[ЙИШШЗ[Ш[111]Ш]8 of ю ОВШШЙООШШОЗШЗШСЗэ of ю [ШОЗЕЕЗШШООЗШООЙ 10 of 10
Рисунок 1. Фрагменты логов вывода изменяемой в окне приложения
информации
На рис. 1 видно, что сначала на экране выделяется место для вывод меняющихся данных, а затем, перед выводом очередного значения, стирается место занятое ранее выведенным значением.
В первом случае выводились проценты и символы, удаляющие их, во втором случае выводилось больше информации и символов удаления потребовалось больше.
На рисунке представлены фрагменты лога приложения, отображаемые в браузере Mozilla Firefox 42.0. Если использовать другие программы для просмотра лога, то управляющие символы могут быть обозначены иначе или даже скрыты.
Приведенный пример показывает, что использование меняющейся информации при выводе в лог значительно снижает его информативность за счет появления в нем множества лишних значений и управляющих символов.
Вывод меняющихся промежуточных данных необходим только при контроле процесса пользователем, поэтому при выводе в лог результатов приложения или работы его на сервере отображение процесса выполнения не так важно, и будет достаточно вывода промежуточных значений, указывающих на завершение этапов программы.
При работе консольного приложения в составе пакетного файла [5], и как отдельного приложения, есть отличие в возможностях вывода информации, что хорошо видно на рис. 2.
СибАК
www.sibaeinfo
16
Технические науки — от теории к практике № 12 (48), 2015 г.______________________
www.sibac.info
Рисунок 2. Схема вывода информации консольного приложения в зависимости от работы ее в составе пакетного файла и работы как отдельного приложения
В ряде консольных приложений используется реализация отдельного вывода информации на экран и в лог, за счет возможности вывода информации в несколько потоков.
Этот подход не удобен тем, что не во всех случаях возможен вывод в лог ошибок stderr, особенно когда приложение используется вместе с другими приложениями, и необходимо отслеживать общий лог их выполнения.
При запуске приложения с параметрами, как отдельного приложения, вне пакетного файла появляется возможность вывода названия приложения и другой информации в заголовок программы.
Решение использования заголовка программы для выводов промежуточной информации позволит выводить общий прогресс исполнения приложения параллельно с отображением процессов этапов в консоли. Пример такого решения представлен на рис. 3.
Рисунок 3. Информация в заголовке программы
Вывод информации на экран может занимать значительное время, поэтому необходимо провести тестирование предлагаемого решения.
Разработана тестовая программа, реализующая вывод промежуточных значений в заголовок программы. Фрагмент кода
17
Технические науки — от теории к практике ____________________№ 12 (48), 2015 г
тестовой программы, написанной на языке программирования Microsoft VisualBasic.NET, выводящий промежуточные значения в заголовок программы, представлен ниже:
For iter = 1 To 100000
Console.Title = "Verifying: " & (iter / 1000).ToString & " of 100 %" Next
Для тестирования программы использовался компьютер со следующими важными для тестирования характеристиками:
1. Процессор: Intel i7 860.
2. Видеокарта: Sapphire Radeon HD 5770.
3. Операционная система: Windows 7 Home Premium.
4. Настройки оформления рабочего стола: Aero [2].
Время работы представленного фрагмента программы, выводящего информацию в заголовок окна 100000 раз (от 0,000 % до 100,000 %), составило 2,4 с.
Как видно из времени работы фрагмента тестовой программы, вывод информации в заголовок программы при высоком качестве оформления рабочего стола производится на высокой скорости и практически не замедляет программу даже при большом количестве промежуточных значений.
Таким образом, предлагаемое решение вывода оперативной информации в заголовок программы позволяет оперативно информировать пользователя о процессе выполнения консольной программы без снижения информативности лога и об общем прогрессе выполнения программы.
Список литературы:
1. Консольные приложения Win32 в Visual C++ // // Обучение разработкам
с Microsoft Developer Network — MSDN [Электронный ресурс] - Режим доступа. - URL: https://msdn.microsoft.com/ru-ru/library/hh875011.aspx
(дата обращения: 06.12.2015).
2. Что такое оформление рабочего стола Aero? // Windows и Windows 10 — Microsoft [Электронный ресурс] - Режим доступа. - URL: http://windows.microsoft.com/ru-ru/windows7/what-is-the-aero-desktop-experience (дата обращения: 12.12.2015).
3. C0 Controls and Basic Latin // Unicode Consortium [Электронный ресурс] -Режим доступа. - URL: http://unicode.org/charts/PDF/U0000.pdf (дата обращения: 12.12.2015).
СибАК
www.sibac.info
18
Технические науки — от теории к практике № 12 (48), 2015 г_______________________
www.sibac.info
4. stdin, stdout, stderr // Обучение разработкам с Microsoft Developer Network — MSDN [Электронный ресурс] - Режим доступа. - URL: https://msdn.microsoft.com/ru-ru/library/3x292kth.aspx (дата обращения: 12.12.2015).
5. Using batch files // Microsoft - официальная страница [Электронный
ресурс] - Режим доступа. - URL:
https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/ en-us/batch.mspx?mfr=true (дата обращения: 12.12.2015)
6. Using command redirection operators // Microsoft - официальная страница [Электронный ресурс] - Режим доступа. - URL: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/ en-us/redirection.mspx?mfr=true (дата обращения: 12.12.2015).
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ДЛЯ ВЫБОРА КАБЕЛЬНЫХ ЛИНИЙ ПРОМЫШЛЕННЫХ ПРЕДПРИЯТИЙ
Гладышева Мария Михайловна
доцент каф. вычислительной техники и программирования института энергетики и автоматизированных систем ФГБОУВПО «МГТУ им. Г.И. Носова», РФ, г. Магнитогорск E-mail: mar.ser.ksuh@gmail.com
Сухачева Евгения Константиновна
студент 2 курса института энергетики и автоматизированных систем ФГБОУ ВПО «МГТУ им. Г.И. Носова»,
РФ, г. Магнитогорск
Хатюшина Татьяна Владимировна
студент 2 курса института энергетики и автоматизированных систем ФГБОУ ВПО «МГТУ им. Г.И. Носова»,
РФ, г. Магнитогорск
19