Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

20 Октябрь 2017, 13:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Сохранить файл в каталоге  (Прочитано 125 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dimmon777
Пользователь
**
Offline Offline

Сообщений: 52


« Стартовое сообщение: 19 Сентябрь 2017, 23:05 »

Добрый день!
В общем каталоге находятся файлы: 001_отчет.ods, 002_отчет.ods, 003_отчет.ods .................. 265_отчет.ods
Нужно сохранить текущий файл под именем "больше на единицу", т.е. 266_отчет.ods
Хотя бы подтолкните в нужном направлении. Заранее спасибо!
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 346


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 20 Сентябрь 2017, 08:12 »

Если 265_отчет.ods был создан, а затем удалён - следующий файл должен быть 265_отчет.ods или все-таки 266_отчет.ods?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 231


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #2: 20 Сентябрь 2017, 09:00 »

Есть три варианта решения:

1. перебор всех файлов с выбором максимального:
Код:
Sub Main  Dim url$, s$, fName$
url="///Путь/к/папке/*.ods"
s=left(dir(url),3)
Do
fName=left(dir(),3)
If fName="" Then Exit Do
If strComp(fName,s) Then s=fName
Loop
Print str(int(s)+1)+"_отчет.ods"
End Sub

2. в цикле формировать имена файлов и проверять на существование, если последовательность без пропусков, первое отсутствующее имя файла будет искомым.

3. формировать имя файла как номер текущего дня плюс "_отчет.ods". Этот вариант может быть лучшим:
Код:
Sub Main
Print str(DatePart("y",now))+"_отчет.ods"       'номер отчёта текущего дня
End Sub

У каждого варианта свои особенности.
Записан

Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!