Зараз обговорюють

"Тобто є ряд завдань, які взагалі без рекурсії не наважуються."  - це як розуміти? Перефразуй, будь ласка. 

виправив, йшлося про те що деякі завдання можна вирішити лише при використанні рекурсії

Спасибі дуже корисна стаття

А ще щось планується подібного найближчим часом?


Дякую за підтримку, радий що Вам сподобалось!

Так маю вже майже дороблений проект по управлінні Audio файлом, на заміну стандартним клавішам управління HTML5, але ще не встиг відтестувати програвання файлів з інтернету, поки лише локально працює

Надіюсь найближчим часом дороблю й закину

Рахунки

webmoneyeur - E385818210641
usd - Z304643423050
uah - U354026817492
rub - R301704373231easypay80002677bitcoin1F5HRGroUtEQW9HBNbeew8iKh5KQ8vJxzw

Зворотній зв'язок

Для покращення роботи сайту надсилайте свої зауваження:
mailЗауваження
mailПропозиція

Статистика

UkrNET - поисково-информационный ресурс

VBA : Перейменувати, перемістити, скопіювати фали. Перебір усіх файлів в папці

При роботі з фалами дуже часто настає момент коли їх необхідно копіювати, переміщувати, перейменовувати чи видаляти!

В даній статті розглянемо як вбудовані методи VBA - FileCopy, Name, Kill, а також використання FSO.

FileSystemObject (FSO)

міститься в бібліотеці типів Scripting, розташованої в файлі бібліотеки scrrun.dll (Microsoft Scripting Runtime в References). Об'єктна модель FSO дає можливість створювати, змінювати, переміщувати і видаляти теки та файли, збирати про них різну інформацію: імена, атрибути, дати створення або зміни і т.д. Щоб працювати з FSO необхідно створити змінну з посиланням на об'єкт бібліотеки. Для цього в нас є два способи:

Раннє зв'язування:

Dim objFSO As New FileSystemObject

Плюси: за допомогою Object Browser можна переглянути список об'єктів, властивостей, методів, подій і констант, включених в FSO. Але є значний мінус: якщо планується використовувати програму на кількох комп'ютерах, то є велика ймовірність отримати помилку (відсутність потрібної бібліотеки на іншому комп'ютері).

Пізніше зв'язування:

нічого ніде не треба підключати, а просто використовуємо метод CreateObject (саме цей спосіб використовується в прикладах нижче). Методи таким чином переглянути не вийде, але зате працювати буде без проблем на будь-яких комп'ютерах без додаткових дій.

Приклади:

Використаємо переваги FSO і переберемо усі файли в теці. Для зручності оголосимо потрібні нам теки як константи (в подальшому легко можна змінити розташування не перебираючи весь код)

Const outFiles As String = "D:Out"
Const outInFiles As String = "D:Out_In"

Копіювання фалів

Sub CopyFile()
    Dim fromPath, toPath As String
    Dim fso, folder, fileInFolder, file
    Set fso = CreateObject("Scripting.FileSystemObject")    'оголошуємо об'єкт FSO
    Set folder = fso.GetFolder(outFiles)	                'вибираємо потрібну теку'
    Set fileInFolder = folder.Files	                        'вибираємо усі файли із потрібної теки'
        If fileInFolder.Count <> 0 Then	                    'перевіряємо чи наявні файли в теці'
			For Each file In fileInFolder 	                'перебираємо всі файли з теки'
					fromPath = outFiles & "" & file.Name 	'файл який потрібно скопіювати'
					toPath = outInFiles & "" & file.Name 	'куди потрібно скопіювати файл і з якою назвою'
				FileCopy fromPath, toPath 	                'запускає копіювання'
				'або методом FSO: file.Copy toPath'
			Next
		Else                                                'якщо пуста тека то повідомляємо про це і закінчуємо виконання процедури'
			Debug.Print "Відсутні файли в теці: " & outFiles
			Set fs = Nothing
			Exit Sub
		End If
	Set fs = Nothing
	MsgBox "Файли скопійовано", vbInformation
End Sub 

Переміщення фалів

Sub MoveFile()
	Dim fromPath, toPath As String
    Dim fso, folder, fileInFolder, file
    Set fso = CreateObject("Scripting.FileSystemObject")	'оголошуємо об'єкт FSO
    Set folder = fso.GetFolder(outFiles)	                'вибираємо потрібну теку'
    Set fileInFolder = folder.Files	                        'вибираємо усі файли із потрібної теки'
        If fileInFolder.Count <> 0 Then	                    'перевіряємо чи наявні файли в теці'
			For Each file In fileInFolder 	                'перебираємо всі файли з теки'
					fromPath = outFiles & "" & file.Name 	'файл який потрібно перемістити'
					toPath = outInFiles & "" & file.Name 	'куди потрібно перемістити файл і з якою назвою'
				Name fromPath, toPath 	                	'запускає переміщення'
				'або методом FSO: file.Move toPath'
			Next
		Else                                                'якщо пуста тека то повідомляємо про це і закінчуємо виконання процедури
			Debug.Print "Відсутні файли в теці: " & outFiles
			Set fs = Nothing
			Exit Sub
		End If
	Set fs = Nothing
	MsgBox "Файли переміщено", vbInformation
End Sub 

Видалення фалів

Sub DeleteFile()
	Dim fromPath, toPath As String
    Dim fso, folder, fileInFolder, file
    Set fso = CreateObject("Scripting.FileSystemObject")   'оголошуємо об'єкт FSO
    Set folder = fso.GetFolder(outFiles)	               'вибираємо потрібну теку'
    Set fileInFolder = folder.Files	                       'вибираємо усі файли із потрібної теки'
        If fileInFolder.Count <> 0 Then	                   'перевіряємо чи наявні файли в теці'
			For Each file In fileInFolder 	               'перебираємо всі файли з теки'
				Kill outFiles & "" & file.Name 	           'запускає видалення потрібного файлу'
				'або методом FSO: file.Delete toPath'
			Next
		Else                                               'якщо пуста тека то повідомляємо про це і закінчуємо виконання процедури'
			Debug.Print "Відсутні файли в теці: " & outFiles
			Set fs = Nothing
			Exit Sub
		End If
	Set fs = Nothing
	MsgBox "Файли видалено", vbInformation
End Sub 

view350like1dislike0 avatard_l4w clock 2016-07-14 01:40

Коментарі:



Для даної статті відсутні коментарі

Про нас

"Programmers World" розроблено з метою полегшення в освоєнні навичок програмування, та поширення матеріалів з сфери ІТ Українською мовою.

Кожен бажаючий може безкоштовно користуватися ресурсами сайту, щоб:

- Вивчати теоретичні аспекти мов програмування

- Переглядати практичне застосування теорії при виконанні різних міні проектів з відкритим кодом

- Розміщати свої завдання на форумі для допомоги в їх реалізації, або готового коду який може бути корисний іншим користувачам

- Спілкуватись з іншими користувачами та обмінюватись досвідом

Сайт функціонує на безопланій основі та ентузіазмі розробника, якщо Ви бажаєте долучитись до розвитку даного проекту то можете пожертвувати кошти на рахунки розміщені в блоці "Допомога сайту".

Сайт

Зареєстровані користувачі можуть скористатися системою діалогів, в профілі користувача, для отримання потрібної інформації. Написати!

Також Ви можете використати форми відправки Зауважень та Пропозицій.


Електронна пошта

Ви можете звертатись на нашу поштову скриньку site.programmersworld@gmail.com

www.000webhost.com