Разработка программы обновления программного обеспечения

Тип работы:
Дипломная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Министерство образования и науки Российской Федерации

ГОУ СПО «Московский Колледж Управления и Новых Технологий»

ДИПЛОМНЫЙ ПРОЕКТ

Разработка программы обновления программного обеспечения

СОДЕРЖАНИЕ

Введение

1. Постановка задачи

1.1 Описание выбора метода решения

1.2 Разработка и описание алгоритма

2. Разработка программы. Обоснование выбора языка программирования

2.2 Описание программы

2.3 Описание отладки программы

2.4 Инструкция пользователя

3. Расчет экономической эффективности от внедрения программы «Учет входящих электронных писем»

Заключение

Список литературы

Приложение А. исходный текст программы

Приложение Б. образцы результатов выполнения программы

Речь на защиту диплома

обновление программное обеспечение письма

ВВЕДЕНИЕ

В деятельности предприятия, представляющего собой комплекс большого числа связанных и взаимодействующих подразделений, оперативная передача достоверной информации является первостепенным и непременным фактором нормального функционирования данной структуры. Не является исключением и структура Федеральной налоговой службы.

В отделе Информационных технологий Управления ФНС России по Московской области достоверность информации, находящейся в базах данных системных комплексов программ, обуславливается своевременным обновлением программного обеспечения во всех территориальных органах, подчиняющихся Управлению Федеральной налоговой службы.

Важнейшими программными продуктами Федеральной налоговой службы являются ЕГРЮЛ — единый государственный реестр юридических лиц. В этом реестре юридических лиц содержатся сведения и документы о юридическом лице, а также ЕГРИП — единый государственный реестр индивидуальных предпринимателей. ЕГРЮЛ (Единый Государственный Реестр Юридических Лиц) — федеральный информационный ресурс. Ведение ЕГРЮЛ осуществляет регистрирующий орган в порядке, установленном Правительством Российской Федерации. ЕГРИП (Единый Государственный Реестр Индивидуальных Предпринимателей) также является федеральным информационным ресурсом. Все индивидуальные предприниматели РФ проходят процедуру обязательной регистрации в ЕГРИП.

Обновления для программ «ЕГРЮЛ» и «ЕГРИП», содержащие добавления к базам данных, высылаются клиентам по электронной почте, с указанием даты, до которой должно произойти обновление.

После того, как клиент обновил приложение, он должен отправить письмо по электронной почте. Отчет о факте обновления приходит в почтовую программу MS Outlook в отдел «Информационных технологий».

Данный дипломный проект посвящен разработке программы, осуществляющей контроль за своевременностью обновления программного обеспечения в Межрайонных Инспекциях ФНС России по Московской области. Программа должна осуществлять проверку присланных электронных писем. В пояснительной записке к дипломному проекту содержится подробное изложение всех шагов, пройденных на этапе разработки программы: постановка задачи, включающая в себя анализ предъявляемых к системе требований; выбор метода решения, описывающий применяемые при решении задачи математические методы; описание алгоритма, составленного для решения поставленной задачи; обоснование выбора языка программирования, используемого для реализации составленного алгоритма; описание программы, аппаратные требования и требования к ПО, предъявляемые к программе для корректной работы; описание отладки программы для возможности своевременного внесения исправлений при обнаружении ошибок; инструкция пользователя, предназначенная для ознакомления конечного пользователя с правилами работы с программой.

1 ПОСТАНОВКА ЗАДАЧИ

Целью данного дипломного проекта является разработка программы «Учета входящих электронных писем», обеспечивающая контроль за своевременностью обновления программного обеспечения. Программа предназначена для сбора, хранения и обработки информации о присланных электронных письмах об обновлениях.

Программа должна иметь понятный и дружественный интерфейс.

1. 1 Описание выбора метода решения

Для решения поставленной задачи требуется провести анализ требований и определение спецификаций.

Входная информация:

— дата начала;

— дата конца;

— адрес электронной почты;

— домен;

- логин;

- пароль;

- протокол получения почты.

Выходная информация:

- автор письма;

— адрес почты;

— тема письма;

— сервер;

— текст сообщения;

— прикрепленный файл;

— дата письма.

Исходные данные поступают в программу путем ручного ввода в специально структурированный файл или путем ввода в саму программу. Разделяемый символ — «|»

Таблица 1.1.1 Структура файла входных данных

Адрес почты

Адрес сервера входящей почты (сервер POP3)

Логин

Пароль

Протокол получения почты

Дата начала — дата, до которой должно быть произведено обновление клиентом (указывается в письме).

Дата конца — сегодняшняя дата.

Адрес почты — адрес электронного почтового «ящика», куда приходят письма с данными об обновлениях. Адрес «ящика» электронной почты состоит из двух частей, разделенных символом «@». Первая часть представляет из себя идентификатор почтового «ящика» (обычно называют «login» или «регистрационная запись»). Вторая часть — идентификатор Интернет — провайдера, предоставившего адрес (также называют «доменом»).

Адрес сервера входящей почты (сервер POP3) — пишется как: pop. «домен». (Если, например, почтовый ящик зарегистрирован на сервере www. mail. ru, то адрес сервера входящей почты будет pop. mail. ru).

Логин — первая часть электронной почты («регистрационная запись»).

Пароль — пароль на вход в электронный «ящик».

Протокол (protocol) — стандарт, определяющий поведение функциональных блоков при передаче данных. Протокол задается набором правил взаимодействия функциональных блоков, расположенных на одном уровне; реализуется одной либо группой программ; описывает синтаксис сообщения, имена элементов данных, операции управления и состояния. (POP3 (Post Office Protocol version 3) — протокол, поддерживающий как прием, так и отправку сообщений электронной почты.)

Выходной отчет «Входящие электронные письма» планируется представить в виде таблицы 1.1.2.

Таблица 1.1.2 Табличный вид отчета «Входящие электронные письма»

Автор письма

Адрес почты

Тема письма

Сервер

Текст сообщения

Прикрепленный файл

Дата обновления

Автор письма — при отправке почты имя, фамилия автора письма прикрепляется автоматически.

Электронный адресь письма — адрес электронного почтового «ящика», с которого пришло письмо с данными об обновлениях.

Тема письма — отображается та тема письма, которую отправитель указал в письме.

Сервер — Почтовый сервер [Postal Server], обеспечивающий прием/передачу и маршрутизацию электронных писем пользователей в Интернете.

Разрабатываемая программа должна осуществлять:

— ввод и формирование исходных данных в программу;

— добавление, корректировку и удаление информации;

— установление связи с почтовым сервером;

— проверку наличия входящих сообщений, а так же их фильтрацию;

— вывод данных на экран и на твердые копии;

— блокировку некорректных действий со стороны пользователя при работе с системой.

Программная система должна иметь дружественный графический интерфейс.

После анализа входных и выходных данных, функций, которые будет должна выполнять программа, можно составить структурно-функциональную схему программы. По принципу модульного структурирования функции могут быть реализованы в виде отдельных модулей. В основу модульного структурирования положен принцип функциональной декомпозиции, при которой

структура системы описывается в терминах иерархии ее функций и передачи

информации между отдельными функциональными элементами. Логическая модель проектируемой программы должна содержать следующие модули:

1) Ввод (добавление) и формирование — осуществляет ввод (добавление) исходных данных (диапазон дат, адрес почты, адрес сервера входящей почты (сервер POP3), логин, пароль, протокол получения почты);

2) Редактирование — осуществляет изменение и удаление, добавление имеющихся данных;

3) Учет входящих электронных писем — осуществляет фильтрацию почты по дате, указанного в письме;

4) Сохранение — осуществляет сохранение выходных данных в файл.

5) Вывод — осуществляет вывод данных на экран и на твердые копии.

Взаимосвязь модулей отражает структурно-функциональная схема, представленная на рисунке 1.1. 1

.

Рисунок 1.1.1. — Схема структурно-функциональных модулей программы «Учет входящих электронных писем».

Из схемы видно, что ввод (добавление) и формирование данных осуществляется посредством модуля ввода (добавления) и формирования, при чем ввод исходных данных осуществляется как через файл, так и через ручной ввод в программу. Входные данные поступают в модуль редактирования и поиска для осуществления функций изменения, удаления данных. Модуль учета по введенным данным устанавливает связь с почтовым сервером, осуществляет фильтрацию и передает данные в модуль сохранения. Модуль сохранения осуществляет функцию сохранения данных в файл (MS Excel). Модуль вывода осуществляет вывод требуемой информации на экран и на твердые копии.

После анализа работы всех модулей можно составить диаграмму потоков данных программы «Учет входящих электронных писем». Диаграмма потоков данных (DFD) представлена на рисунке 1.1.3.

На основе структурно-функциональной схемы построим контекстную диаграмму (рисунок 1.1. 2).

Рисунок 1.1.2 — Контекстная диаграмма программы «Учет входящих электронных писем».

Из диаграммы видно: сотрудник отдела информационных технологий задает исходные данные (диапазон дат, адрес электронной почты, домен, логин, пароль, протокол получения почты), программа по введеннным данным проверяет почту, фильтрует входящие письма. На экран выводится сводный список писем в виде таблицы 1.1. 2, которые удовлетворяют критериям фильтрации.

Рисунок 1.1.3. -Диаграмма потоков данных программы «Учет входящих электронных писем».

Детализируя контекстную диаграмму, составим детализирующую диаграмму потоков данных первого уровня. Она представлена на рисунке 1.1. 4

Из диаграммы видно, что в подсистему ввода (добавления) и формирования вводятся данные (диапазон дат, адрес электронной почты, домен, логин, пароль, протокол получения почты), которые сохраняются в ОЗУ. Подсистеме редактирования и подсистеме поиска передаются сводный список входных данных. После поиска и составления списков они выводятся на экран монитора. Список с внесенными изменениями передается в подсистему сохранения для их сохранения в ОЗУ и ПЗУ. Подсистема вывода осуществляет вывод отчета «Входящие электронные письма» на экран монитора и на твердые копии.

Рисунок 1.1.4. -Детализирующая диаграмма программы «Учет входящих электронных писем».

Поскольку разрабатываемая программа должна иметь дружественный интерфейс, разработаем диаграмму состояний. Первое окно реализует ввод данных, а так же, при желании пользвателя, их загрузку, редактирование, удаление и добавление. Второе окно — установление связи с почтовым сервером для проверки писем. Далее следует инициализация выполнения. Четвертое определяет действия с результатом.

Диаграмма состояний представлена на рисунке 1.1.5.

Рисунок 1.1.5 Диаграмма состояний программы «Учет входящих электронных писем».

1.2 Разработка и описание алгоритма

После изучения предметной области, определения входных и выходных данных, функций программы можно приступить к разработке алгоритма в виде структурных схем.

На рисунке 1.2.1 представлена схема управляющей программы.

Рисунок 1.2.1 — Схема структурная управляющей программы

Рисунок 1.2.2 — Схема структурная функции «Ввод»

Рисунок 1.2.3 — Схема структурная функции «Добавить»

Рисунок 1.2.4 — Схема структурная функции «Удалить»

Рисунок 1.2.5 — Схема структурная функции «Изменить»

Рисунок 1.2.6 — Схема структурная функции «Учет входящих электронных писем».

Рисунок 1.2.7 — Схема структурная функции «Сохранение»

Рисунок 1.2.8 — Схема структурная функции «Вывод»

Рисунок 1.2.9 — Схема структурная функции «Печать»

Посимвольное описание управляющей программы

Символ 1:

Начало

Символ 2:

Множественный выбор:

— если выбрано ввести, то переход к символу 3;

— если выбрано добавить, то переход к символу 4;

— если выбрано удалить, то переход к символу 5;

— если изменить, то переход к символу 6;

— если выбран учет входящих электронных писем, то переход к символу 7;

— если выбрано сохранить, то переход к символу 8;

— если выбрано отменить, то переход к символу 9;

— если выбрано вывести, то переход к символу 10;

— если выбрано печатать, то переход к символу 11.

Символ 3:

Вызов функции «Ввод»

Символ 4:

Вызов функции «Добавление»

Символ 5:

Вызов функции «Удаление»

Символ 6:

Вызов функции «Изменение»

Символ 7:

Вызов функции «Учет входящих электронных писем»

Символ 8:

Вызов функции «Сохранение»

Символ 9:

Вызов функции «Отмена»

Символ 10:

Вызов функции «Вывод»

Символ 11:

Вызов функции «Печать»

Символ 12:

Конец

Посимвольное описание функции «Ввод»

Символ 1:

Вызов

Символ 2:

Вызов функции «Загрузка данных из файла»

Символ 3:

Множественный выбор:

— если выбрано добавить, то переход к символу 4;

— если выбрано удалить, то переход к символу 5;

— если изменить, то переход к символу 6;

Символ 4:

Вызов функции «Добавление»

Символ 5:

Вызов функции «Удаление»

Символ 6:

Вызов функции «Изменение»

Символ 7:

Возврат

Посимвольное описание функции «Добавление»

Символ 1:

Вызов

Символ 2:

Выбор: если введены все значения, то переход к символу 4, иначе к символу 3

Символ 3:

Вывод сообщения пользователю «Введены не все значения»

Символ 4:

Добавление строки в файл

Символ 5:

Возврат

Посимвольное описание функции «Удаление»

Символ 1:

Вызов

Символ 2:

Вывод пользователю сообщения «Вы действительно хотите удалить файл?»

Символ 3:

Выбор: если выбрано «Ок», то переход к символу 4; если «Cancel», то переход к символу 8

Символ 4:

Организация цикла. Параметр цикла i, диапазон от 1 до m (где m — количество введенных подключений), шаг 1

Символ 5:

Выбор: если строка та, которую надо удалить, то переход к символу 6, иначе переход к символу 4

Символ 6:

Вызов функции «Удаление» выбранной строки

Символ 7:

Сохранение изменений в файл

Символ 8:

Возврат

Посимвольное описание функции «Изменение»

Символ 1:

Вызов

Символ 2:

Организация цакла. Параметр цикла i, диапазон от i до m (где m — количество записей о подключении), шаг 1

Символ 3:

Выбор: если i-ая запись та, которую надо удалить, то переход к символу 4, иначе к символу 2

Символ 4:

Выбор: если введены все значения для добавления новой записи, то осуществляется переход к символу 6, иначе к символу 5

Символ 5:

Вывод пользователю сообщения «Введены не все значения»

Символ 6:

Вызов функции «Изменение данных в выбранной строке»

Символ 7:

Вызов функции «Сохрание в файл»

Символ 8:

Возврат

Посимвольное описание функции «Учет входящих электронных писем»

Символ 1:

Вызов

Символ 2:

Организация цикла. Параметр цикла i, диапазон от 1 до m (m — количество строк подключений), шаг 1

Символ 3:

Выбор: если установлена связь по i-ой строке, то осуществляется переход к символу 5, иначе к символу 4.

Символ 4:

Вывод пользователю сообщения «По i-ому адресу не установлена связь с сервером»

Символ 5:

Выбор: если количество сообщеиий не равно 0, то осуществляется переход к символу 7, иначе к символу 6

Символ 6:

Вывод пользователю сообщения «В папке 0 сообщений»

Символ 7:

Организация цикла. Параметр цикла i, диапазон от 1 до n (где n — количество сообщений), шаг 1

Символ 8:

Выбор: если дата, указанная в письме, удовлетворяет критериям фильтрации, то переход к символу 9, иначе к симолу 7

Символ 9:

Вывод информации о входящем письме

Символ 10:

Возврат

Посимвольное описание функции «Сохранение»

Символ 1:

Вызов

Символ 2:

Передача параметров — данных о письме

Символ 3:

Организация цикла. Выполнять, пока не закончились письма. Открытие цикла.

Символ 4:

Вывод данных о письме в программе

Символ 5:

Увеличить i на 1 (шаг 1)

Символ 6:

Параметр цикла i. Закрытие цикла

Символ 7:

Возврат

Посимвольное описание функции «Вывод»

Символ 1:

Вход

Символ 2:

Организация цикла. Параметр цикла i, диапазон от 1 до m (где m — количество писем), шаг 1

Символ 3:

Вывод данных о письме

Символ 4:

Возврат

Посимвольное описание функции «Печать»

Символ 1:

Вход

Символ 2:

Организация цикла. Параметр цикла i, диапазон от 1 до m (где m — количество писем), шаг 1

Символ 3:

Запись данных о письме в файл

Символ 4:

Возврат

2. РАЗРАБОТКА ПРОГРАММЫ

2.1 Обоснование выбора языка программирования

Данную программу следует реализовать на языке высокого уровня. Рассмотрим достоинства и недостатки некоторых из них.

Delphi — это продукт Borland International для быстрого создания приложений. Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic или в других инструментах визуального проектирования. В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов, и прочие инструменты, необходимые для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто программ для Windows-среды.

Прежде всего, Delphi предназначен для профессиональных разработчиков, желающих очень быстро разрабатывать приложения в архитектуре клиент-сервер. Delphi производит небольшие по размерам (до 15−30 Кбайт) высокоэффективные исполняемые модули (. exe и. dll), поэтому в Delphi должны быть прежде всего заинтересованы те, кто разрабатывает продукты на продажу. С другой стороны небольшие по размерам и быстро исполняемые модули означают, что требования к клиентским рабочим местам существенно снижаются — это имеет немаловажное значение и для конечных пользователей.

Преимущества Delphi по сравнению с аналогичными программными продуктами.

— быстрота разработки приложения;

— высокая производительность разработанного приложения;

— низкие требования разработанного приложения к ресурсам компьютера;

— наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi;

— возможность разработки новых компонент и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);

— удачная проработка иерархии объектов.

Система программирования Delphi рассчитана на программирование различных приложений и предоставляет большое количество компонентов для этого.

К тому же работодателей интересует прежде всего скорость и качество создания программ, а эти характеристики может обеспечить только среда визуального проектирования, способная взять на себя значительные объемы рутинной работы по подготовке приложений, а также согласовать деятельность группы постановщиков, кодировщиков, тестеров и технических писателей. Возможности Delphi полностью отвечают подобным требованиям и подходят для создания систем любой сложности.

Visual Basic легко использовать для изучения и использования. Он позволяет разрабатывать не только простые приложения с графическим интерфейсом, но и создавать сложные приложения. Программирование в VB представляет собой сочетание визуальных компонентов и контролов, определение атрибутов и действий для компонентов, написание дополнительного кода для расширения функциональных возможностей. Определенные по умолчанию значения и действия для компонентов позволяют создать простую программу без написания кода программистом. Ранние версии имели определенные проблемы с производительностью программ, но с использованием современных компьютеров и компиляцией собственного кода данная проблема стала менее значимой.

Компиляция программ была введена в Visual Basic 5, но при этом исполняемые программы до сих пор требуют наличия определенных библиотек для запуска. Эти библиотеки включены в Windows, начиная с Windows 2000, но для более ранних версий Windows они должны поставляться вместе с программой.

Формы создаются при помощи технологии «перетащи и брось» (drag and drop). Элементы управления просто размещаются на форме (например, поля ввода, кнопки, и т. д.). Элементы управления имеют свои атрибуты и обработчики событий. Многие атрибуты могут быть изменены во время исполнения программы, что позволяет создавать программы, динамически реагирующие на действия пользователя.

Visual Basic может создать исполняемые программы (EXE файлы), элементы управления ActiveX, библиотеки DLL, но, прежде всего, используется для разработки Windows приложений. Диалоговые окна с ограниченными функциональными возможностями могут использоваться для обеспечения подсказок. Элементы управления обеспечивают основные функциональные возможности приложения, а программист может расширить логику программы при помощи обработчиков событий. Например, выпадающий список автоматически отображает список и позволяет пользователю выбрать элемент. Обработчик событий вызывается для исполнения дополнительного кода в зависимости от выбранного элемента.

Язык использует справочную информацию для сбора мусора, имеет большую библиотеку сервисных объектов, объектно-ориентированную разработку. В отличие от многих других языков программирования, Visual Basic не зависим от регистра. Сравнение строк зависит от регистра, но может быть выполнено без учета регистра.

Компилятор Visual Basic поставляется вместе с другими языками Visual Studio (C, C++), но ограничения в интегрированной среде разработки не позволяют создание некоторых видов приложений.

Система программирования Microsoft Visual C++ представляет собой реализацию среды разработки для распространенного языка системного программирования C++, выполненную компанией Microsoft. Эта система программирования в настоящее время построена в виде интегрированной среды разработки, включающей в себя все необходимые средства для разработки результирующих программ, ориентированных на выполнение под управлением ОС типа Microsoft Windows различных версий. Основу системы программирования Microsoft Visual C++ составляет библиотека классов MFC (Microsoft foundation classes). Вэтой библиотеке реализованы в виде классов C++ все основные органы управления и интерфейса ОС. Также в ее состав входят классы, обеспечивающие разработку приложений для архитектуры клиент-сервер и трехуровневой архитектуры (в современных версиях библиотеки). Система программирования Microsoft Visual C++ позволяет разрабатывать любые приложения, выполняющиеся в среде ОС типа Microsoft Windows, в том числе серверные или клиентские результирующие программы, осуществляющие взаимодействие между собой по одной из указанных выше архитектур.

При решении поставленной задачи оптимально использовать для представления информационных материалов язык Delphi, который является языком высокого уровня и позволяет быстро и эффективно создавать приложения.

Для разработки программы «Учет входящих электронных писем» была выбрана интегрированная серда программирования Delphi 7 версии для программирования приложений ОС Windows.

2. 2 Описание программы

Данная программа разработана в соответствии с методом модульного структурирования, с элементами объектно-ориентированного программирования. Состав программы представлен в таблице 2.2.1.

Таблица 2.2.1 — Технические и программные характеристики ПК

Название модуля

Описание модуля

Занимаемое место на жестком диске

Занимаемое место в оперативной памяти

Check_up_letters. exe

исполняемый файл проекта

8,83 Мб

13,84 Мб

UntConnectForm (. dfm,. pas,. ddp,. dcu)

модуль соединения

18,9 Кб

21,3 Кб

Unit1(. dfm,. pas,. ddp,. dcu)

главный модуль программы

4,66 Мб

8,4 Мб

Unit2(. dfm,. pas,. ddp,. dcu)

модуль редактирования (добавления, удаления, сохранения)

4,64 Мб

8,2 Мб

Unit3(. dfm,. pas,. ddp,. dcu)

модуль ввода/добавления

4,64 Мб

7,6 Мб

Входящие электронные письма. xls

отчет «Входящие электронные письма»

11,5 Кб

13,03 Кб

Unit4(. dfm,. pas,. ddp,. dcu)

Модуль учета входящих электронных писем

5,0 Мб

6,0 Мб

Unit5(. dfm,. pas,. ddp,. dcu)

Модуль сохранения

4,0 Мб

4,5 Мб

Unit6(. dfm,. pas,. ddp,. dcu)

Модуль вывода

4,72 Мб

5,32 МБ

Данный программный продукт разработан на платформе ОС Wndows Vista в среде программирования Delphi 7. 0

При создании программы использовался персональной компьютер следующей конфигурации:

Таблица 2.2.2 — Технические и программные характеристики ПК

Процессор

Intel Pentium 4 2,66 GHz

Оперативная память

XDR RAMBUS 512 MB

Жёсткий диск

120 GB

Видеокарта

NVIDIA Ge Force 6600

Монитор

NEC 17″

CD ROM

LG DVD-RW

Принтер

Epson С 45

Клавиатура

Genius

Манипулятор типа «мышь»

Genius

Таблица 2.2.2 — Минимальные технические и программные средства необходимые для функционирования программы:

Процессор

Intel Pentium 133 MHz

Оперативная память

32 MB

Жёсткий диск

2Mb свободного места

Видеокарта

С поддержкой разрешения 640×480

Монитор

Любой

CD ROM

CD-R 4x

Принтер

Любой

Клавиатура

Любая

Мышь

Любая

Операционная система

Windows 98/2000/NT/XP/Vista

2. 3 Отладка и тестирование программы

Отладка программ заключается в проверке правильности работы программы и аппаратуры. Программа, не содержащая синтаксических ошибок тем не менее может содержать логические ошибки, не позволяющие программе выполнять заложенные в ней функции. Логические ошибки могут быть связаны с алгоритмом программы или с неправильным пониманием работы аппаратуры, подключённой к портам микроконтроллера.

Встроенный в состав интегрированной среды программирования отладчик позволяет отладить те участки кода программы, которые не зависят от работы аппаратуры, не входящей в состав микросхемы микроконтроллера. Обычно это относится к вычислению математических выражений или преобразованию форматов представления данных.

Для отладки программ обычно применяют три способа:

1) Пошаговая отладка программ с заходом в подпрограммы;

2) Пошаговая отладка программ с выполнением подпрограммы как одного оператора;

3) Выполнение программы до точки останова.

Пошаговая отладка программ заключается в том, что выполняется один оператор программы и, затем контролируются те переменные, на которые должен был воздействовать данный оператор.

Если в программе имеются уже отлаженные подпрограммы, то подпрограмму можно рассматривать, как один оператор программы и воспользоваться вторым способом отладки программ.

Если в программе существует достаточно большой участок программы, уже отлаженный ранее, то его можно выполнить, не контролируя переменные, на которые он воздействует. Использование точек останова позволяет пропускать уже отлаженную часть программы. Точка останова устанавливается в местах, где необходимо проверить содержимое переменных или просто проконтролировать, передаётся ли управление данному оператору.

Практически во всех отладчиках поддерживается это свойство (а также выполнение программы до курсора и выход из подпрограммы). Затем отладка программы продолжается в пошаговом режиме с контролем локальных и глобальных переменных

Тестирование — это один из важнейших этапов процесса разработки программного продукта, который необходим для выявления ошибок программирования или других дефектов, с целью их последующего устранения, что в свою очередь положительным образом сказывается на его качестве.

Цель тестирования — обнаружить все имеющиеся дефекты, чтобы обеспечить полное соответствие программного продукта требованиям, которые к нему предъявляются. По окончанию работ, а часто и в процессе разработки, готовые модули или программный продукт проходят тщательное тестирование.

Уровни тестирования

— Модульное тестирование (юнит-тестирование) -- тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция

— Интеграционное тестирование -- проверяет, есть ли какие-либо проблемы в интерфейсах и взаимодействии между интегрируемыми компонентами, например, не передается информация, передается некорректная информация.

— Системное тестирование -- тестируется интегрированная система на её соответствие исходным требованиям

o Альфа-тестирование -- имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком на стороне разработчика. Часто альфа-тестирование применяется для законченного продукта в качестве внутреннего приёмочного тестирования. Иногда альфа-тестирование выполняется под отладчиком или с использованием окружения, которое помогает быстро выявлять найденные ошибки. Обнаруженные ошибки могут быть переданы тестировщикам для дополнительного исследования в окружении, подобном тому, в котором будет использоваться ПО.

o Бета-тестирование -- в некоторых случаях выполняется распространение версии с ограничениями (по функциональности или времени работы) для некоторой группы лиц, с тем чтобы убедиться, что продукт содержит достаточно мало ошибок. Иногда бета-тестирование выполняется для того, чтобы получить обратную связь о продукте от его будущих пользователей.

Модульное тестирование — это тестирование программы на уровне отдельно взятых модулей, функций или классов. Цель модульного тестирования состоит в выявлении локализованных в модуле ошибок в реализации алгоритмов, а также в определении степени готовности системы к переходу на следующий уровень разработки и тестирования.

При составлении плана тестирования программного модуля учета входящих электронных писем в Управлении ФНС России по МО были разработаны наборы тестовых данных в виде функциональных пар.

Функциональная пара — это определённый тип результата работы модуля, соответствующий конкретным входным данным. Такие функциональные пары для модулей программы представлены в виде таблиц.

Пример функциональных пар представлен в таблице 2.3.1.

Таблица 2.3.1 — Набор тестовых данных

Входные данные

Ожидаемый результат

Полученный результат

Меры

Ввод адресов в поле

«Почтовые адреса»:

«адрес электронной почты»: SMNIKE89@rambler. ru

«домен»: pop. mail. ru

«имя пользователя»:

SMNIKE89

«пароль»: 123

«протокол получения почты»: РОР3

Установление связи с почтовым сервером, вход на указанный адрес с логином и паролем

Связь установлена, пьсьма получены

Программа сработала корректно

Результаты работы программы после отладки представлены на рисунках 2.3.1 — 2.3. 6

Рисунок 2.3.2 — Вид экранной формы «Редактирование» при тестировании функции Удалить

Рисунок 2.3.4 — Вид экранной формы предупреждения при тестировании функции Изменение.

Рисунок 2.3. 5- Вид экранной формы предупреждения при тестировании функции «Учет входящих электронных писем».

Рисунок 2.3.6 Вид экранной формы предупреждения при тестировании функции «Учет входящих электронных писем».

Рисунок 2.3.7 Вид экранной формы «Проверка почты» при тестировании функции «Учет входящих электронных писем».

2.4 Инструкция пользователя

1) Для запуска программы необходимо вставить диск с программой и скопировать программу на рабочий стол

2) 2 раза кликнуть кнопкой по иконке программы, откроется первая форма программы.

Рисунок 2.4.1 — Вид экранной формы «Учет ходящих электронных писем»

3) Для добавления данных новом электронном «ящике», письма на котором необходимо проверить, надо нажать кнопку «Добавить» или «Данные» — «Добавить», ввести новые данные, и нажать кнопку «Применить».

Рисунок 2.4.2 — Вид экранной формы «Добавление»

Если пользователь не введет какие-нибудь данные, программа сообщит пользователю об ошибке.

Рисунок 2.4.3 — Вид экранной формы сообщения пользователю об ошибке

4) Для изменения уже внесенных данных о почтовом «ящике» необходимо нажать кнопку «Изменить»

Рисунок 2.4.4 — Вид экранной формы «Изменение»

Если пользователь не введет какие-нибудь данные, программа сообщит пользователю об ошибке.

Рисунок 2.4.5 — Вид экранной формы сообщения пользователю об ошибке

5) Если список адресов, по которым необходимо произвести проверку, уже создан в в формате *txt, то программа может загрузить его. Для этого не обходимо нажать кнопку «Загрузить», в диалоговом окне выбрать файл, и нажать «Открыть».

Рисунок 2.4.6 — Вид экранной формы «Открыть».

6) После того, как адреса добавлены таблицу «Строки подключения», можно произвести проверку почты на наличае входящих сообщений. Для этого необходимо нажать «Почта» — «Проверка почты», при этом пользователю будет показано состояние проверки входящих электронных писем.

Рисунок 2.4.7 — Вид экранной формы «Проверка почты».

Если связь не установлена по каким-либо причинам, программа сообщит пользователю номер строки подключения, из-за которой не установлено соединение с сервером.

Рисунок 2.4.8 — Вид экранной формы сообщения пользователю о ошибке.

В случае если связь установлена по какой-либо строке подключения, но в папке «Входящие» нет писем, удовлетворяющих критериям запроса, программа выдаст соответствующее сообщение пользователю.

Рисунок 2.4.9 — Вид экранной формы сообщения пользователю об ошибке.

6) После того, как произошла проверка входящих электронных писем, появится окно, показывающее пользователю данные о письмах, удовлетворяющих критериям запроса.

Рисунок 2.4. 10 — Вид экранной формы «Входящие электронные письма».

Для экспорта в Excel необходимо нажать кнопку «Экспорт в Excel». Сформированный файл будет иметь название «Входящие электронные письма».

Рисунок 2.4. 11 — Вид печатной формы «Входящие электронные письма».

8) Для выхода из программы необходимо закрыть все открытые окна.

3. РАСЧЕТ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ОТ ВНЕДРЕНИЯ ПРОГРАММЫ «УЧЕТ ВХОДЯЩИХ ЭЛЕКТРОННЫХ ПИСЕМ»

В успешном завершении проекта и его эффективной эксплуатации заинтересованы все его участники, реализующие таким образом свои индивидуальные интересы, а именно:

— заказчик проекта получает проект и доходы от его использования;

— руководитель проекта и его команда получают плату по контракту, дополнительное вознаграждение по результатам работы, а также повышение профессионального рейтинга;

— органы власти получают налоги со всех участников, а также удовлетворение общественных, социальных и прочих нужд и требований на вверенной им территории.

Правильное понимание экономических аспектов разработки, внедрения и эксплуатации программного продукта позволяют легче преодолеть помехи, связанные с такими внешними и внутренними факторами, характерными для переходного периода в России, как:

— нестабильная экономика;

— дефицит и ограниченность средств и ресурсов;

— инфляция и возрастание стоимости проекта;

— социальные проблемы и требования;

— возрастающие требования к качеству программной продукции.

Если эти изменения не анализируются и не учитываются, то это приводит к таким негативным результатам, как:

— превышение ранее установленной стоимости, продолжительности и сроков завершения проектов;

— увеличение штрафов за нарушение обязательств;

-отставание в реализации и практическом использовании результатов научных исследований и опытно-конструкторских разработок;

— снижение эффективности и увеличение сроков окупаемости проекта.

В создавшихся условиях работа инженера подразумевает не только нахождение прогрессивных решений, но и их технико-экономическое обоснование, доказательство того, что выбранный вариант является наиболее выгодным и экономически эффективным.

Характерной чертой проводимых работ является их теоретическая направленность. В качестве конечного результата проектирования может рассматриваться прототип интеллектуальной системы, демонстрирующий возможность применения теоретических разработок и не предполагающий выход на рынок научно-технической продукции. Таким образом, основными источниками затрат при работе над темой как части этапа проектирования жизненного цикла целенаправленной интеллектуальной системы являются капитальные предпроизводственные затраты, которые в определенной степени могут быть учтены и минимизированы.

Калькулирование осуществляется по калькуляционным статьям расходов.

Таблица 3.1. Затраты на расходные материалы

№ п/п

Наименование материала

Расход,

Цена,

Сумма,

шт.

руб. /шт

руб.

1

Среда программирования Borland Delphi 7. 0

1

2800

2800

2

ОС MS Windows ХР Professional

1

5400

5400

3

Вспомогательная литература

6

100

600

4

Устройство хранения информации

2

500

1000

5

Канцтовары

-

-

200

Итого

10 000

Таблица 3.2. Основная заработная плата разработчиков ПП

Наименование

Трудоёмкость

Трудо-ёмкость

Оклад, руб.

Затраты

Анализ

требований

Специалист по ИО

10

0,436

2190,00

954,84

Определение спецификации

Специалист по ИО

10

0,436

2190,00

954,84

Проектирование

Программист

14

0,655

3100,00

2030,50

Кодирование

Программист

19

0,873

3100,00

2706,30

Тестирование

Специалист по

тестированию

38

1,745

2190,00

3821,55

Сдача темы

Программист

5

0,218

2900,00

632,20

Итого

11 100,23

Дополнительная заработная плата разработчиков ПП составляет 20% от основной заработной платы:

0,2 11 100,23= 2220,04 руб.

Фонд заработной платы представляет собой сумму основной и дополнительной заработной платы:

11 100,23+ 2220,04 = 13 320,27 руб.

Отчисления на социальные нужды составляют 35% от фонда оплаты труда:

0. 35 13 320,27 = 4662,09 руб.

Накладные расходы составляют 250% от величины основной заработной платы:

2.5 11 100,23 = 27 750,57 руб.

Прочие расходы включают расходы на машинное время (порядка 3-ёх месяцев на разработку, отладку и тестирование ПП: 700 часов стоимостью 12 руб. /час):

700 12 = 8400 руб.

Таблица 3.3 — Калькуляция темы

№ п/п

Наименование статей расходов

Затраты, руб.

1

Расходные материалы

10 000,00

2

Основная заработная плата разработчиков

11 100,23

3

Дополнительная заработная плата разработчиков

2220,04

4

Отчисления на социальное страхование

4662,09

5

Накладные расходы

27 750,57

6

Прочие расходы

8400,00

Итого затрат:

Зк = 64 132,93

Экономия от замены ручной обработки информации на автоматизированную образуется в результате снижения затрат на обработку информации и определяется по формуле, руб. :

Эу = Зр — За, где (3. 1)

Зр — затраты на ручную обработку информации, руб. ;

За — затраты на автоматизированную обработку информации, руб.

Затраты на ручную обработку информации определяются по формуле:

Зр = Ои Ц Гд / Нв, где (3. 2)

Ои — объём информации, обрабатываемой вручную, Мбайт;

Ц — стоимость одного часа работы, руб. /час;

Гд — коэффициент, учитывающий дополнительные затраты времени на логические операции при ручной обработке информации;

Нв — норма выработки, Мбайт/час.

В данном случае: Ои = 84,7 Мбайт (общий размер обрабатываемых данных, вводимых для регистрации за год с последующим подсчетом статистики), Ц = 3100 / 22 / 8 17,61 руб. /час, Гд = 2.5 (установлен экспериментально), Нв = 0,07 Мбайт/час. Следовательно, затраты на ручную обработку информации будут равны:

Зр = 84,7 17,61 2,5 / 0,07 = 50 660,816 руб.

Затраты на автоматизированную обработку информации рассчитываются по следующей формуле:

За = ta Цм + tом + Цо), где (3. 3)

ta — время автоматической обработки, ч. ;

Цм — стоимость одного часа машинного времени, руб. /час;

tо — время работы оператора, ч. ;

Цо — стоимость одного часа работы оператора, руб. /час.

Для данного ПП: ta = 18 ч., Цм = 10 руб., tо = 83.3 ч., Цо = 2190 / 22 / 8 12,44 руб. Следовательно, затраты на автоматизированную обработку информации будут равны:

За = 18 10 + 83,3 (10 + 12,44) = 2049,25 руб.

Таким образом, годовая экономия от внедрения ПП равна:

Эу = 50 660,816- 2049,25 = 48 611,566 руб.

Экономический эффект от использования ПП за год определяется по формуле, руб. :

Эг = Эу — Ен Зк. (3. 4)

Эг = 48 611,566- 0.2 64 132,93 = 35 784,98 руб.

Эффективность разработки может быть оценена по формуле (3. 5).

Эр = Эг 0.4 / Зк, где (3. 5)

Эр — эффективность разработки, руб.

Эр = 35 784,98 0.4 / 64 132,93 = 91 618,471

Поскольку Эр > 0. 20, программа рассчитывается по формуле (3. 6)

Т = Зк / Эг, где (3. 6)

Т — срок окупаемости, лет.

Для данной программы:

Т = 64 132,93 / 91 618,471 =0,7 лет.

В результате проведенных расчетов можно сделать вывод, что программа экономически целесообразна и может быть рекомендована к внедрению в Управлении Федеральной налоговой службы России по Московской области в отделе материально-технического снабжения и отделе информационных технологий.

ЗАКЛЮЧЕНИЕ

В данном дипломном проекте была спроектирована и реализована программа учета входящих электронных писем в Управлении ФНС России по Московской области. Данная программа обеспечивает следующие основные функции: соединение с сервером по строкам подключений; проверку наличия входящих сообщений; проверку даты, указанной в письме, на вхождение в указанный диапазон дат; формирование результата: отчета входящих электронных писем за период.

Реализация системы проводилась в соответствии с требованиями заказчика. Выбор среды программирования был обусловлен также основными характеристиками большинства используемого программного обеспечения в Управлении ФНС России по Московской области. При разработке программы использовались Borland Delphi 7.0. В процессе написания программы большое внимание было уделено удобству работы пользователя и построению дружественного интерфейса.

Введение программы обеспечит автоматизированный безошибочный учет всех электронных писем, содержащих сведения об обновлении, даст возможность формирования достоверной и полной информации обо всех клиентах, осуществивших обновления для программ ЕГРЮЛ и ЕГРИП в заданный диапазон дат.

Разработанная программа готова к внедрению в Управлении ФНС России по Московской области.

Список используемой литературы

1) Г. С. Иванова «Технология программирования» — издательство МГТУ имени Н. Э. Баумана 2003 г.

2) ГОСТ 19. 701−90. Схемы алгоритмов и программ. Правила выполнения

3) ГОСТ 19. 003−80. Схемы алгоритмов и программ. Обозначения условные графические

4) Александровский А. Д. «Delphi 7», Москва, 1999.

5) Справка Delphi.

6) «Основы Программирования» И. Г. Семакин, А. П. Шестаков; Москва, «Academa»; 2003 год.

ПРИЛОЖЕНИЕ А

Исходный текст программы

Текст модуля

unit chek_up_letters;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,

IdTCPClient, IdMessageClient, IdIMAP4, IdCoder, IdCoder3to4, IdCoderMIME,

ExtCtrls, Menus, INIFiles, IdPOP3, IdMessage, IdTCPServer, IdSMTPServer,

IdSMTP;

type

TForm1 = class (TForm)

IdIMAP41: TIdIMAP4;

IdDecoderMIME1: TIdDecoderMIME;

Timer2: TTimer;

IdPOP31: TIdPOP3;

IdMessage1: TIdMessage;

Button2: TButton;

Memo2: TMemo;

ListBox1: TListBox;

Button3: TButton;

Button4: TButton;

Button5: TButton;

IdSMTPServer1: TIdSMTPServer;

Label1: TLabel;

Label2: TLabel;

procedure FormCreate (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure ListBox1DblClick (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button6Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Math, adress, em;

{$R *. dfm}

function KOI8_RToUTF16Str (const s: string): WideString;

var

i, j: integer;

begin

j:= length (s);

setLength (Result, j);

for i: =1 to j do

Result[i]: =KOI8_RToUTF16Char (s[i]);

end;

function DecodeStr (Text: string): string;

var

Temp, Dec: string;

P, P2: Integer;

begin

Temp: =Text;

Result: ='';

while pos ('=?windows-1251?', Temp)>0 do

begin

P: =pos ('=?windows-1251?', Temp);

// P2: =pos ('?=', Copy (Temp, P, Length (Temp)))+P;

P2: =pos ('?=', Temp);

Dec: =Copy (Temp, p+17,P2-(P+17));

Dec: =Form1. IdDecoderMIME1. DecodeString (Dec);

Result: =Result+Copy (Temp, 1, P-1)+Dec;

Temp: =Copy (Temp, P2+2,length (Temp));

end;

Result: =Result+Temp;

Temp: =Result;

Result: ='';

while pos ('=?koi8-r?', Temp)>0 do

begin

P: =pos ('=?koi8-r?', Temp);

P2: =pos ('?=', Temp);

Dec: =Copy (Temp, p+11,P2-(P+11));

try

if Dec< >''

then Dec: =KOI8_RToUTF16Str (Form1. IdDecoderMIME1. DecodeString (Dec));

except

end;

Result: =Result+Copy (Temp, 1, P-1)+Dec;

Temp: =Copy (Temp, P2+2,length (Temp));

end;

Result: =Result+Temp;

end;

procedure TForm1. FormCreate (Sender: TObject);

begin

Application. Title:='Проверка/Отправка почты (POP3, IMAP)';

//

ListBox1. Items. LoadFromFile (ExtractFilePath (ParamStr (0))+'emails. txt');

try

ListBox1. Selected[0]:=true;

except

end;

end;

procedure TForm1. Button4Click (Sender: TObject);

begin

Form2. ShowModal;

end;

procedure TForm1. ListBox1DblClick (Sender: TObject);

begin

Form2. ShowModal;

end;

procedure TForm1. Button5Click (Sender: TObject);

var

i: integer;

begin

if MessageDlg ('Вы действительно хотите удалить адрес?', mtConfirmation,

[mbYes, mbNo], 0)=mrNo

then Exit

else

begin

for i: =0 to Form1. ListBox1. Items. Count-1 do

begin

if Form1. ListBox1. Selected[i]

then

begin

ListBox1. Items. Delete (i);

ListBox1. Items. SaveToFile (ExtractFilePath (ParamStr (0))+'emails. txt');

Break;

end;

end;

end;

end;

procedure TForm1. Button3Click (Sender: TObject);

begin

ListBox1. Items. Add ('new@new. ru|new. mail. ru|user|password|POP3');

end;

procedure TForm1. Button2Click (Sender: TObject);

var

i: integer;

s, usr: string;

imap: boolean;

begin

Memo2. Clear;

imap: =false;

for i: =0 to Form1. ListBox1. Items. Count-1 do

begin

if Form1. ListBox1. Selected[i]

then

begin

s: =Form1. ListBox1. Items. Strings[i];

Break;

end;

end;

//

IdIMAP41. Port:=25;

IdPOP31. Port:=110;

//

usr: =Copy (s, 1, pos ('|', s)-1);

Delete (s, 1, pos ('|', s));

IdIMAP41. Host:=Copy (s, 1, pos ('|', s)-1);

IdPOP31. Host:=IdIMAP41. Host;

//

Delete (s, 1, pos ('|', s));

IdIMAP41. Username:=Copy (s, 1, pos ('|', s)-1);

IdPOP31. Username:=IdIMAP41. Username;

//

Delete (s, 1, pos ('|', s));

IdIMAP41. Password:=Copy (s, 1, pos ('|', s)-1);

IdPOP31. Password:=IdIMAP41. Password;

//

Delete (s, 1, pos ('|', s));

if s='POP3'

then imap: =false

else

if s='IMAP'

then imap: =true;

//////////////////////////////////////// проверка почты

Memo2. Clear;

Timer2. Enabled:=true;

Timer2. Interval:=1000*60*5; // раз в 5 минут

try

if imap=true

then

begin

IdIMAP41. Connect (30 000);

IdIMAP41. SelectMailBox ('INBOX');

IdIMAP41. RetrieveAllHeaders (IdIMAP41. MailBox. MessageList);

//

if IdIMAP41. MailBox. MessageList. Count=0

then ShowMessage ('В папке 0 сообщений!');

end

else

begin

IdPOP31. Connect (1000);

if IdPOP31. CheckMessages=0

then ShowMessage ('В папке 0 сообщений!');

end;

if imap=true

then

begin //IMAP4

Memo2. Lines. Add ('------------------------------------------------------------------------------------------------------------------------------------------------------------------------');

Memo2. Lines. Add ('Имя почтового ящика (IMAP): '+usr+' (всего сообщений: '+IntToStr (IdIMAP41. MailBox. MessageList. Count)+')');

Memo2. Lines. Add ('------------------------------------------------------------------------------------------------------------------------------------------------------------------------');

for i: =0 to IdIMAP41. MailBox. MessageList. Count-1 do

begin

Memo2. Lines. Add (' '+IntToStr (i+1)+': От: '+DecodeStr (IdIMAP41. MailBox. MessageList. Messages[i]. From. Text));

Memo2. Lines. Add (' Адрес: '+DecodeStr (IdIMAP41. MailBox. MessageList. Messages[i]. From. Address));

Memo2. Lines. Add (' Имя: '+DecodeStr (IdIMAP41. MailBox. MessageList. Messages[i]. From. Name));

Memo2. Lines. Add (' Тема: '+DecodeStr (IdIMAP41. MailBox. MessageList. Messages[i]. Subject));

Memo2. Lines. Add (' Сервер: '+DecodeStr (IdIMAP41. MailBox. MessageList. Messages[i]. MsgId));

Memo2. Lines. Add (' Attachement Encoding: '+DecodeStr (IdIMAP41. MailBox. MessageList. Messages[i]. AttachmentEncoding));

Memo2. Lines. Add (' Charset: '+DecodeStr (IdIMAP41. MailBox. MessageList. Messages[i]. CharSet));

Memo2. Lines. Add (' Текст сообщения: '+DecodeStr (IdIMAP41. MailBox. MessageList. Messages[i]. Body. Text));

Memo2. Lines. Add (' ');

end;

IdIMAP41. Disconnect;

end

else

begin //POP3

Memo2. Lines. Add ('------------------------------------------------------------------------------------------------------------------------------------------------------------------------');

Memo2. Lines. Add ('Имя почтового ящика (POP): '+usr+' (всего сообщений: неизвестно)');

Memo2. Lines. Add ('------------------------------------------------------------------------------------------------------------------------------------------------------------------------');

for i: =1 to IdPOP31. CheckMessages do

begin

IdMessage1. Clear;

IdPOP31. RetrieveHeader (i, IdMessage1);

Memo2. Lines. Add (' '+IntToStr (i)+': От: '+DecodeStr (IdMessage1. From. Text));

Memo2. Lines. Add (' Адрес: '+DecodeStr (IdMessage1. From. Address));

Memo2. Lines. Add (' Имя: '+DecodeStr (IdMessage1. From. Name));

Memo2. Lines. Add (' Тема: '+DecodeStr (IdMessage1. Subject));

Memo2. Lines. Add (' Сервер: '+DecodeStr (IdMessage1. MsgId));

Memo2. Lines. Add (' Attachement Encoding: '+DecodeStr (IdMessage1. AttachmentEncoding));

Memo2. Lines. Add (' Charset: '+DecodeStr (IdMessage1. CharSet));

Memo2. Lines. Add (' Текст сообщения: '+DecodeStr (IdMessage1. Body. Text));

Memo2. Lines. Add (' ');

end;

IdPOP31. Disconnect;

end;

except

end;

end;

procedure TForm1. Button6Click (Sender: TObject);

begin

Form3. ShowModal;

end;

end

unit adress;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm2 = class (TForm)

Edit1: TEdit;

Label1: TLabel;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

Edit4: TEdit;

Button1: TButton;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

procedure FormShow (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit1;

{$R *. dfm}

procedure TForm2. FormShow (Sender: TObject);

var

i: integer;

s: string;

begin

for i: =0 to Form1. ListBox1. Items. Count-1 do

begin

if Form1. ListBox1. Selected[i]

then

begin

s: =Form1. ListBox1. Items. Strings[i];

//

Edit1. Text:=Copy (s, 1, pos ('|', s)-1);

Delete (s, 1, pos ('|', s));

Edit2. Text:=Copy (s, 1, pos ('|', s)-1);

Delete (s, 1, pos ('|', s));

Edit3. Text:=Copy (s, 1, pos ('|', s)-1);

Delete (s, 1, pos ('|', s));

Edit4. Text:=Copy (s, 1, pos ('|', s)-1);

Delete (s, 1, pos ('|', s));

if s='POP3'

then RadioButton1. Checked:=true

else

if s='IMAP'

then RadioButton2. Checked:=true

else RadioButton1. Checked:=true;

if Edit1. Text=''

then Edit1. Text:=Form1. ListBox1. Items. Strings[i];

//

Break;

end;

end;

end;

procedure TForm2. Button1Click (Sender: TObject);

var

i: integer;

s: string;

begin

for i: =0 to Form1. ListBox1. Items. Count-1 do

begin

if Form1. ListBox1. Selected[i]

then

begin

if (Edit1. Text<>'') and (Edit2. Text<>'')

and (Edit3. Text<>'') and (Edit4. Text<>'')

then

begin

s: =Edit1. Text+'|'+Edit2. Text+'|'+Edit3. Text+'|'+Edit4. Text;

ПоказатьСвернуть
Заполнить форму текущей работой