Сделай глобальную коллекцию
Сделай глобальную коллекцию
Dim i As Integer
Dim Name As String*6
Dim Dt As String * 8
For i = 0 To File1.ListCount - 1
Name = Right(Left(File1.List(i), 8), 6)
Dt = Left(Name, 2) & "." & Right(Left(Name, 4), 2) & "." & Right(Name, 2)
If Dt = CStr(Format((Date - 1), "dd/MM/yy")) Then
If UCase(Left(Right(File1.List(i), 5), 1)) = "M" Then PrnOne i ' PrnOne - процедура печати файла
End If
Next
s = Dir$("PD" & Format$(Date-1,"ddmmyy") & "*m.txt")
Do While Len(s)
' Печатаем файл s
s = Dir$
Loop
MOV писал(а):Не знал что звездочка в VB работатет как и в SQL пойду пробовать.
Name = Dir$(File1.Path & "\PD" & Format$(Date - 1, "ddmmyy") & "*m.txt")
MOV писал(а):Да. Я понял. Это оно. Полезный прием. На этом и остановлюсь. Спасибо.
Только еще один вопрос. Таким образом
- Код: Выделить всё
Name = Dir$(File1.Path & "\PD" & Format$(Date - 1, "ddmmyy") & "*m.txt")
Name присваивается значение первого найденного соответствующего файла, то есть надо все-таки перебирать выходит весь файллист. Но все равно код так лучше смотрится.
Задаешь маску нужных тебе файлов и получаешь только их.
Dim C as New Collection
s = Dir$("PD" & Format$(Date-1,"ddmmyy") & "*m.txt")
Do While Len(s)
c.Add s
' Печатаем файл s
s = Dir$
Loop
MOV писал(а):Задаешь маску нужных тебе файлов и получаешь только их.
Это я понимаю - по аналогии с любым файлмэнеджером (в фаре например клавиша "+" задаешь маску и твои фалы выделены). Здесь то же самое, только я говорю про то, что, видимо, придется перебирать все файлы в этой директории сравнивая с этой маской. Так? А как получить их все (то есть сразу весь список по маске, если это можно сделать одним махом, то в переменную какого типа он запишется)- туплю, не догоняю.
А так разве не лучше, чем присваивать дату к имени? В директории с нужной датой будут лежать все твои текстовики, и тебе не нужно перебирать остальныеAndrey Fedorov писал(а):Кстати, можно ведь их просто в соответствующие папки распихивать и потом для обработки выбирать нужную папку...
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 167