Для чего нужна процедура Sub?

СОДЕРЖАНИЕ: Sub это то же самое, что и Function, только она не возвращает значение, а производит какое-нибудь действие. Например вывод на экран сообщения или манипулирование несколькими свойствами.

Если Вы уже читали моё объяснения процедуры Function, то Вы поймёте Sub ёще быстрее! В общем так, Sub это то же самое, что и Function, только она не возвращает значение, а производит какое-нибудь действие. Например вывод на экран сообщения или манипулирование несколькими свойствами. Например MsgBox. Это тоже подпрограмма. Например:

Msgbox ("Привет!", ,"Заголовок")

Msgbox - это имя подпрограммы. А "Привет!" и "Заголовок" это передаваемые значения. Т.е. подпрограмма Msgbox выводит окно на экран с текстом "Привет!" и заголовком "Заголовок".

Теперь допустим, что Вам нужно, чтобы ваша программа вырезала из передаваемых строк все заданные символы (возьмём мой пример из "Практики"):

Sub Main()

объявляем переменную для строки

Dim Stroka As String

объявляем переменную для символа, который надо вырезать

Dim Symbol As String

объявляем переменную для места нахождения символа

Dim ReturnNumber As Integer

получаем строку, по умолчанию стоит строка

"There is nothing impossible!"

Stroka = InputBox("Введите строку", , "There is nothing impossible!")

получаем символ, по умолчанию стоит символ "i"

Symbol = InputBox("Введите символ", , "i")

запускаем цикл

Do

с помощью InStr получаем местоположение искомого символа

если оно равно нулю, покидаем цикл

ReturnNumber = InStr(1, Stroka, Symbol): If _

ReturnNumber = 0 Then Exit Do

строке присваем все символы слева до искомого и справа

Stroka = Left(Stroka, ReturnNumber - 1) + Right(Stroka, _

Len(Stroka) - ReturnNumber)

Loop

MsgBox Stroka выводим отредактированную строку на экран

End Sub

А теперь представте, что эти строки Вам нужны более одного раза и в разных местах !

Не проще ли написать подпрограмму, которая это делает и потом просто вызывать её? Так, пишем (вне модуля):

Public Sub RemSym(Stroka, Symbol)

Do

ReturnNumber = InStr(1, Stroka, Symbol): If _

ReturnNumber = 0 Then Exit Do

Stroka = Left(Stroka, ReturnNumber - 1) + Right _

(Stroka, Len(Stroka) - ReturnNumber)

Loop

MsgBox Stroka

End Sub

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

RemSym Stroka, Symbol

и из любого места!

СКАЧАТЬ ДОКУМЕНТ

ДОБАВИТЬ КОММЕНТАРИЙ  [можно без регистрации]
перед публикацией все комментарии рассматриваются модератором сайта - спам опубликован не будет

Ваше имя:

Комментарий

Видео

Колоноскопия. Зачем нужна эта процедура рассказывает к.м.н., лучший проктолог Евромедсервис  [ВИДЕО]

Мои процедуры | Похудение, удаление татуажа, эпиляция, ламинирование  [ВИДЕО]

boostUP - что такое процедура бустап, ее преимущества и зачем она нужна клиенту  [ВИДЕО]
Микроблейдинг. Все о процедуре.  [ВИДЕО]
✂ УХОД ЗА ВОЛОСАМИ: САЛОННЫЕ ПРОЦЕДУРЫ И ДОМАШНИЙ УХОД  [ВИДЕО]
Программа "Добрый вечер": колоноскопия - нужна ли эта процедура?  [ВИДЕО]
В стоматкабинетах навязывают опасную процедуру! - Абзац! - 18.08.2016  [ВИДЕО]
Для чего спортсмены делают хиджаму  [ВИДЕО]
✔ Кукла Беби Борн. Ярослава лечит малыша. Лечебные процедуры / Doll Baby Born with Yaroslava ✔  [ВИДЕО]
Процедура "УЗ-чистка лица" от Kaetana  [ВИДЕО]
Процедура Bouffant Paul Mitchell - супер объем для волос  [ВИДЕО]
Порядок продажи автомобиля. Порядок действий процедуры продажи авто.  [ВИДЕО]

Copyright © MirZnanii.com 2015-2017. All rigths reserved.