Источник: http://bit.pirit.info/forum/viewtopic.php?t=214
Автор: BiT
rootsoft@mail.ru
Цикл For …Next или как работать с большим числом
файлов
Данная
статья рассчитана на начинающих программистов, постичь не постижимое, понять не
понятное, еще раз убеждаюсь, что практика творит чудеса – так, что не бойтесь
пробовать и спрашивать.
Так,
как быть – нужно создать 200 «doc» или «txt» файлов, у всех цели могут быть
разные, так что обсуждать это не вижу смысл. Расширение файла не имеет роли,
так вы сами сможете изменить все под себя.
Любой
начинающий программист сталкивается с проблемой повторения одних и тех же
действий и в следствии увеличении строк кода и выполнения скучной рутинной
работы. Давайте передадим всю эту работу компьютеру, уж он то был создан
облегчать жизнь пользователям. Причем справиться во много раз быстрее, чем мы.
И тут нам на помощь приходят циклы.
В
Visual Basic’е есть
несколько видов циклов – мы остановимся на одном, For …Next.
Синтаксис
цикла:
For счетчик =
начальное_значение To
конечное_значение Step
шаг
Выполняемые операции
Next счетчик
Например:
Option Explicit
Private Sub
Command1_Click()
Dim
i As Integer
'Объявляем переменную, для хранения текущего значения счетчика
For
i = 1 To 10 Step 2
'По умолчанию значение Step = 1 и может не указываться
Print i
'Выведем значения счетчика на форму
'Получим ряд 1 3 5 7 9
Next
i
End Sub
'Или, например, если опустить шаг
Private Sub Command2_Click()
Dim
i As Integer
For
i = 1 To 10
Print
i
'Получим ряд 12345678910
'Т.е. все значения от 1 до 10
Next
i
End Sub
С
циклом все должно быть понятно, так что приступим к главной задаче.
Если
вы читали статье о работе с файлами – ничего нового вы не прочитаете, как
создавать файлы. Но при сочетании цикла и кода создания файла, получим
программу для массового создания файлов.
Создаем
новый проект, с одной формой, нам понадобятся 1 TextBox и 2 CommandButton. Двойным
щелчком по свойству Caption формы
выделим текст, и заменим на CreateFiles, так будет называться наша
программа.
Переименуем
текстовое поле в txtCount, а кнопки cmdStart и cmdExit,
наверное, тут все понятно.
txtCount – сюда
будем вводить нужное нам число, т.е. количество файлов.
cmdStart – кнопка,
запускающая проект.
cmdExit – кнопка,
для выхода из программы.
Вот
собственно код нашей программы:
Option Explicit
'Не буду разжевывать, почему этот оператор необходим, тем более для
новичков
'Скажу коротко, после его использования необходимо явно объявлять
все переменные
'Т.е. если захотите использовать не объявленную переменную, то
бейсик начнет ругаться
Dim
intN As Integer
'Объявляем переменную для хранения числа файлов
Dim
intI As Integer
'Объявляем счетчик
Dim
intNumber As Integer
'Объявляем переменную для хранения номера файла
Private Sub
cmdStart_Click()
intN
= Val(txtCount)
'Присваиваем переменной значение, введенное в текстовое поле
'Функция Val возвращает числовое представление строки из текстового
поля
'Т.е. если в текстовое поле введено не числовое значение, то
'функция возвратит 0, а, следовательно, файлов создано не будет
Debug.Print intN
'Для проверки - действительно ли функция возвратит 0
'Используем такой код и запустим проект
'После нажатия на кнопку старт
'в окне Immediate внизу экрана появится значение переменной intN
'Используем Debug - только для проверки и далее просто удаляем эту
строку
For
intI = 1 To intN
'Цикл от 1 до значения_переменной intN
'Цикл будет повторяться в зависимости от того, какое число введено
в текстовое поле
intNumber = FreeFile
'Чтобы мы могли работать с файлами нам необходимо знать
следующий
'свободный номер файла, функция FreeFile возвращает этот номер
'Он необходим для использования в операторе Open
Open
App.Path & "\" & intI & ".doc" For Output As intNumber
'App.Path - возвращает путь к папке, где был запущен файл, он
необходим
'для того чтобы файлы создавались в папке с программой
'intI & ".doc" - формируется имя файлов из
переменной счетчика и расширения для файлов
'Почему из переменной счетчика, для того, чтобы имена файлов
шли по порядку, с 1 до максимального значения
'С помощью Output можно открыть файл для сохранения данных, но
так как его нет,
'он создается. А если файл уже будет в папке - он будет
перезаписан
'Так что это дело остается за вами, проверок мы делать не будем
'Следите, чтобы не испортить нужный вам файл
Close intNumber
'Закрываем файл с номером, который хранится в intNumber
Next
intI
'После того, как был создан файл, цикл повторяется, пока не будет
достигнуто конечное значение переменной intI
End Sub
Private Sub
cmdExit_Click()
Unload
Me
'Выходим из программы
'Так же можно использовать Unload Form1
'или просто End
End Sub
Private Sub
Form_Load()
txtCount =
""
'При загрузке формы очистим текстовое поле
txtCount.MaxLength
= 3
'Свойство MaxLength ограничивает ввод в поле 3 символами
End Sub
Ну,
вроде бы и все.
Компилируем
проект в «exe» файл и
запускаем!
Ура!
Программа
работает, вводим в текстовое поле 5 и нажимаем Старт.
В
папке с программой появились 5 «doc» файлов.
Удачи
в труде.