Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »
реклама
http://pedant-tolyatti.ru/remont-iphone-6s-6splus/zamena-akb

Почтовая рассылка

Подписчиков: 11642
Последний выпуск: 19.06.2015

Цикл For...Next или как работать с большим числом файлов

<< Оглавление

Цикл 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" файлов.

Удачи в труде.


Оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
88K
29 октября 2013 года
Hralain
1 / / 29.10.2013
Мне нравитсяМне не нравится
29 октября 2013, 21:15:50
Неплохо. А как обработать кучу файлов в папке, если их имена могут быть любыми? Например мне нужно обработать тхт файлы. Как сделать чтобы программа обработав один, находила другой и т.д.?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог