Существует ли специальная функция?
А если количество файлов постоянно меняется и их сложно отследить?
Функция для подсчета объема файлов определенного типа.
В определенный момент вся информация из текстовых файлов считывается. Необходимо зафиксировать этот момент и выдать соощение.
Специальной функции нет.
Сколько файлов будет в момент считывания тоже неизвестно.
Писать готовый код за него никто не будет. Да и неполезно это, давать людям готовый код. Привыкают, и потом вообще отучивают делать что-либо самостоятельное.
Да я вообще не знаю с какой стороны подступиться!
Специальной функции нет.
Сколько файлов будет в момент считывания тоже неизвестно.
Lotreck писал(а):Интересующий меня пример не является уникальным, и наверняка уже давным давно разработан, опробован и вылизан и место ему в фаге. Тратить неделю времени на создание того что уже есть и сделано лучше чем это получится у меня не вижу смысла. А фаг в одну страницу это издевательство над новичками.
Public Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4
Public Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2
Public Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1
Public Const FILE_NOTIFY_CHANGE_SIZE = &H8
Public Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10
Public Const FILE_NOTIFY_CHANGE_SECURITY = &H100
Public Const FILE_NOTIFY_CHANGE_ALL = &H4 Or &H2 Or &H1 Or &H8 Or &H10 Or &H100
Public Declare Function FindFirstChangeNotification Lib "kernel32" Alias "FindFirstChangeNotificationA" (ByVal lpPathName As String, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long) As Long
Public Declare Function FindCloseChangeNotification Lib "kernel32" (ByVal hChangeHandle As Long) As Long
Public Declare Function FindNextChangeNotification Lib "kernel32" (ByVal hChangeHandle As Long) As Long
Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Public Declare Function ResetEvent Lib "kernel32" (ByVal hEvent As Long) As Long
Private Sub Form_Load()
Dim a$
If Dir("c:\folder\*.txt") = vbNullString Then
MkDir ("c:\folder")
ChDir ("c:\folder")
a = "aaaaaa"
Open "c:\folder\file_1.txt" For Output As #1
Print #1, a
Close #1
Open "c:\folder\file_2.txt" For Output As #2
Print #2, a
Close #2
End If
End Sub
Private Sub Command1_Click()
Dim a() As String
Dim dirs$
Dim tipe$
Dim summa%
Dim count%
dirs = "c:folder\"
tipe = "*.txt"
i = Dir(dirs & tipe)
Do While i <> ""
i = Dir
ReDim Preserve a(Counter)
a(Counter) = i
summa = summa + FileSystem.FileLen(dirs & a(Counter))
Counter = Counter + 1
Loop
MsgBox "Сумма всех файлов с расширением " & Mid(tipe, 2, Len(tipe)) & " в папке " & dirs & " равна " & summa & " байт ", , "отчет"
End Sub
Lotreck писал(а):Есть такой вариант. Правда не работает, ни результата, ни сообщений об ошибке, то ли сам подход неверный, то ли где ошибка.
Пока не разобрался. Как уже говорил впервые с этим сталкиваюсь, и знаний недостаточно.
- Код: Выделить всё
Private Sub Form_Load()
Dim a$
If Dir("c:\folder\*.txt") = vbNullString Then
MkDir ("c:\folder")
ChDir ("c:\folder")
a = "aaaaaa"
Open "c:\folder\file_1.txt" For Output As #1
Print #1, a
Close #1
Open "c:\folder\file_2.txt" For Output As #2
Print #2, a
Close #2
End If
End Sub
Private Sub Command1_Click()
Dim a() As String
Dim dirs$
Dim tipe$
Dim summa%
Dim count%
dirs = "c:folder"
tipe = "*.txt"
i = Dir(dirs & tipe)
Do While i <> ""
i = Dir
ReDim Preserve a(Counter)
a(Counter) = i
summa = summa + FileSystem.FileLen(dirs & a(Counter))
Counter = Counter + 1
Loop
MsgBox "Сумма всех файлов с расширением " & Mid(tipe, 2, Len(tipe)) & " в папке " & dirs & " равна " & summa & " байт ", , "отчет"
End Sub
If Dir("c:\folder\*.txt") = vbNullString Then
MkDir ("c:\folder")
....
end if
Как уже говорил впервые с этим сталкиваюсь, и знаний недостаточно.
If Dir("c:\folder\*.txt") = vbNullString Then
MkDir ("c:\folder")
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47