• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

файловая система 1с77

  • Автор темы lira89
  • Дата начала
L

lira89

Есть несколько файлов, например "HNF0112019.663" и "HNF0112030.664" (тип текстовый/csv). Они находятся в одном каталоге. Нужно осуществить выборку файлов по нужным параметрам в имени файлов, чтобы последовательно импортировать их в документ. Я сначала должна построить шаблон имени файла, по которому буду искать их.
Я делала это вот таким образом, но мне выдает ошибку, что неправильный формат файла:
ШаблонИмениФайла = "HNF*"+День+Месяц+"*.*";
или
ШаблонИмениФайла = "HNF*"+День+Месяц+"***.*";
Что тут не так?
После того как я найду первый файл, я должна найти по шаблону следующий файл. Как осуществить перебор файлов по данному шаблону имени файла? Может надо использовать метод ФС.НайтиСледующийФайл(), но я не понимаю как это увязать вместе. Буду благодарна за советы и помощь)
 
U

unknown181538

Можно и просто перебрать все в каталоге, и парсить имена ...
 
V

vbs

Видимо, лучше так
ШаблонИмениФайла = "HNF"+День+Месяц+".*";
годится, если день и месяц - строки из двух символов, иначе надо их преобразовать к двухсимвольным строкам
 
L

lira89

Попробовала вот так, а оно попадает на сообщение, что файл не найден (ищет файл с именем HNF112.*, а надо HNF0112019.663):
Код:
ШаблонИмениФайла = "HNF"+День+Месяц+".*";
Файл=КаталогИБ()+ИмяПапки+"\"+ШаблонИмениФайла;
Если ФС.СуществуетФайл(Файл)=0 Тогда
Сообщить("Файл не найден: "+Файл,"!");
Возврат;
КонецЕсли;
PS: Путь к папке с файлом правильно показывает: D:\База студентов\ImportPlatezhei\HNF112.*
День и месяц получаю следующим образом:
Код:
День = ДатаЧисло(ДатаДок);
ИмяПапки = "ImportPlatezhei";
Месяц = ПреобразоватьВШестнадцатиричнуюСистему(ДатаМесяц(ДатаДок));
 
K

KiR

Видимо, лучше так
ШаблонИмениФайла = "HNF"+День+Месяц+".*";
годится, если день и месяц - строки из двух символов, иначе надо их преобразовать к двухсимвольным строкам
я писал приблизительно про это.

в вашем случае - напишите что означает каждая цифра - какие могут быть шаблоны?
 
L

lira89

Структура названия файла :

HNFcddmmzzz.MFO, где HNF -имя идентифицирующее учреждение (постоянное), с - номер ЦБУ (в большинстве случаев равен 0), dd -день, mm - месяц в 16-ричной системе, zzz - внутр. счетчик в банке, MFO - МФО филиала.
 
K

KiR

zzz - внутр. счетчик в банке,
т.е. проблемма получается только с этим?

кстати, в вашем шаблоне пропущенно
с - номер ЦБУ (в большинстве случаев равен 0)
т.е. логично было бы сделать - ШаблонИмениФайла = "HNF0"+День+Месяц+".*";

Или можно добавить переменную ЦБУ = 0 и делать так ШаблонИмениФайла = "HNF"+ЦБУ+День+Месяц+".*";
ЦБУ можно засунуть в цикл от 0 до 9
 
L

lira89

спасибо всем за помощь, вроде все работает уже)
 
Д

Дайнеко

Если ФС.СуществуетФайл(Файл)=0 Тогда
Сообщить("Файл не найден: "+Файл,"!");
Возврат;
КонецЕсли;

Можно много обсуждать про шаблон, но так работать все равно не будет. Надо именно циклом перебрать файлы через ФС.НайтиСледующийФайл()
 
L

lira89

Я вот как сделала:
Код:
ШаблонИмениФайла = "HNF*"+День+Месяц+"*.*";
Файл=ФС.НайтиПервыйФайл(ШаблонИмениФайла);
Если ФС.СуществуетФайл(Файл)=0 Тогда
Сообщить("Файл не найден: "+Файл,"!");
Возврат;
КонецЕсли;
Пока ФС.СуществуетФайл(Файл)=1 Цикл
.....
Файл=ФС.НайтиСледующийФайл();
КонецЦикла;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!