Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Имя файла_порядковый номер / 19 сообщений из 19, страница 1 из 1
06.06.2014, 13:16
    #38663525
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Комрады, приветствую.
Существует необходимость создания большого количества файлов. Файлы создаются из VBA. Подскажите, пожалуйста, как создавать файлы по маске <статичное имя>_<порядковый номер>.xlsx. Плюс при создании нового файла в указанной директории должна проводиться проверка существующих файлов, определение максимального существующего порядкового номера и создание нового файла с порядковым номером +1.
Заранее спасибо.
_____________________
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как администрация форума попросила его быть вежливым.
...
Рейтинг: 0 / 0
06.06.2014, 17:21
    #38663958
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
сохранение - SaveAs
проверка наличия - Dir
...
Рейтинг: 0 / 0
16.06.2014, 09:55
    #38670049
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Shocker.Pro,
не то. Постановка задачи кратко
В директории лежит файл filename_16062014_ 1 .html
Нужно создать файл filename_16062014_ 2 .html
а потом filename_16062014_ 3 .html и т.д.
...
Рейтинг: 0 / 0
16.06.2014, 11:16
    #38670116
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
и? Что смущает-то?
...
Рейтинг: 0 / 0
16.06.2014, 11:40
    #38670147
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Shocker.Pro,
как из имен существующих файлов вычленить максимальное значение порядкового номера, который следует после нижнего подчеркивания?
...
Рейтинг: 0 / 0
16.06.2014, 12:27
    #38670233
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Просмотреть список файлов Dir-ом
Вычленять из каждого файла номер с помощью InStrRev, Mid$
Сравнивать с предыдущим, запоминать тот, который больше
...
Рейтинг: 0 / 0
16.06.2014, 12:30
    #38670240
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Shocker.Pro,
да, в теории я именно к этому, слава богу, и пришел. Сложность с кодом. Пока получается очень громоздко. С нуля код - пока для меня проблема. Рокирую найденные в интернете примеры. Поэтому и громоздко
...
Рейтинг: 0 / 0
16.06.2014, 12:32
    #38670243
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Так где код-то?
...
Рейтинг: 0 / 0
16.06.2014, 13:11
    #38670306
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Shocker.Pro,
плз, не нужно меня третировать. "Родить" нужный код я смогу и без подобных подсказок. Просто это займет очень много времени. Я обратился за подсказкой, которую ОБЫЧНО (видимо, не в этом топике) добрые люди дают сразу же, без пренебрежительных подстегиваний и нравоучений, и в обсуждении которой рождается результат.
...
Рейтинг: 0 / 0
16.06.2014, 13:17
    #38670318
kiv-1980
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Frost_Imp,
Ну потратьте его, Вам же нужно.
...
Рейтинг: 0 / 0
16.06.2014, 13:38
    #38670360
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
с каких пор sql.ru превратился в пристанище троллей?
...
Рейтинг: 0 / 0
16.06.2014, 13:52
    #38670389
kiv-1980
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Frost_Impс каких пор sql.ru превратился в пристанище троллей?
Вроде взрослый человек, а ведет себя как студент-бездельник, которому лень палец о палец ударить.
...
Рейтинг: 0 / 0
16.06.2014, 13:55
    #38670396
kiv-1980
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
...
Рейтинг: 0 / 0
16.06.2014, 14:16
    #38670447
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
kiv-1980,
прекратите, пожалуйста, истерику. Я не первый год зарегистрирован на этом форуме и именно благодаря ему значительно продвинулся в таком НЕПРОФИЛЬНОМ для меня вопросе, как MS Access и VBA. Тыкать меня носом в пособие для школьников не нужно, мне не 15 лет. Если у вас нет желания, или настроения или другие жизненные проблемы - пожалуйста, пройдите мимо и уступите другому. В конце концов, я сразу дал понять, что прекрасно знаю этику поведения SQL.ru, но, тем не менее, прошу ответа или совета к своей задаче. "Почитайте учебник и сделайте" - это не совет. Если не в состоянии сформулировать что-то более стоящее - отошлю вас к написанному мною же выше.
...
Рейтинг: 0 / 0
16.06.2014, 15:18
    #38670575
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Frost_ImpЯ обратился за подсказкой, которую ОБЫЧНО (видимо, не в этом топике) добрые люди дают сразу жея дал вам подсказку сразу же 16134252 16168648
вы ответилиFrost_ImpСложность с кодом. Пока получается очень громоздко.Что вы хотите дальше? Либо выкладывайте код, посмотрим как его умять, либо задавайте конкретные вопросы, получите ответы. Вы не делаете ни того не другого, при этом находите тут третирование и истерики.
...
Рейтинг: 0 / 0
16.06.2014, 16:27
    #38670682
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Получилось следующее. Работает.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Function CreateHTMLfile(hText$)
iFolderPath$ = [Forms]![frmCreateCampaign]![fldPath].Value
iFileName$ = [Forms]![frmCreateCampaign]![fldFileName].Value
Call CheckDir(nextNum%)

Dim iFullName$
If nextNum% = 0 Then
    iFullName$ = iFolderPath$ & iFileName$ & "_1.html"
    Else
    iFullName$ = iFolderPath$ & iFileName$ & "_" & nextNum% + 1 & ".html"
    End If
Open iFullName$ For Append As #1
    Print #1, hText$
    Close #1

End Function

Function CheckDir(nextNum%)
iFolderPath$ = [Forms]![frmCreateCampaign]![fldPath].Value
iFileName$ = [Forms]![frmCreateCampaign]![fldFileName].Value
Dim fn$, f%, l%, leght%, prevNum%
fn$ = Dir(iFolderPath$ & iFileName$ & "*")
Do While fn$ <> ""
    f = InStrRev(fn$, "_")
    l = InStrRev(fn$, ".")
    leght = l - f - 1
    nextNum = Mid(fn, f + 1, leght)
    If nextNum% > prevNum% Then
        prevNum% = nextNum%
        End If
    fn$ = Dir
    Loop
'MsgBox nextNum%
End Function

...
Рейтинг: 0 / 0
16.06.2014, 16:57
    #38670722
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
по оптимизации
1)
Код: vbnet
1.
2.
3.
4.
5.
If nextNum% = 0 Then
    iFullName$ = iFolderPath$ & iFileName$ & "_1.html"
    Else
    iFullName$ = iFolderPath$ & iFileName$ & "_" & nextNum% + 1 & ".html"
    End If

выделенные строки абсолютно лишние, так как вторая ветка все равно даст нужный результат

2) функция придумана для того, чтобы возвращать значение, можно, конечно, вызывать так, как вы вызываете, но лучше так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function CreateHTMLfile(hText$)
...
nextNum = CheckDir()
...

Function CheckDir()
....
CheckDir = ....
.....
End Function
...
Рейтинг: 0 / 0
16.06.2014, 17:01
    #38670728
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
3) логично было бы искать сразу файлы с нужным расширением
Код: vbnet
1.
fn$ = Dir(iFolderPath$ & iFileName$ & "*.html")


тогда можно не искать в дальнейшем точку InStrRev(fn$, "."), а сразу резать с помощью функции Mid$, наверняка зная, где эта точка.

Это даст выигрыш в скорости, если в папке есть много посторонних файлов.

Но в целом, никаких претензий к коду нет, не знаю, что смущает
...
Рейтинг: 0 / 0
16.06.2014, 17:09
    #38670739
Frost_Imp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя файла_порядковый номер
Поправил. Благодарю!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Имя файла_порядковый номер / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]