Каким способом можно указать путь к папке на один уровень выше, если название папки неизвестно?
-
This post is deleted!
-
@out По логике все изложено ясно, но визуально трудно представляется. От примера бы не отказался :) Так, например, в PHP можно указать так :
../ Это означает, что папка находится на уровень выше. Хорошо бы запилить подобную функцию в BAS((
reply
-
@olegtut как-то так: 0_1480729100577_cntFiles.xml
оно само найдет путь где лежит папка Desktop, нужно только указать начальный путь c:\Users
на счет .. , то это значит подняться на 1 уровень вверх, ../.. на два. В БАС при указании пути это тоже работает (проверил ..), но это не для твоего случая.
В этом примере все работает, но тут вопрос к @support там выход из цикла не прерывает все уровни циклов, раньше можно было указать break 3; Сейчас вроде как нет возможности указывать глубину, думаю это сделано для простоты понимания нам, но вроде как не выходит сейчас из всех циклов, а только из текущего. А раз убрали возможность указывать глубину, то нужно, чтобы break выходил из всех циклов.
-
@olegtut
Еще можно вызвать действие " Информация О Файле/Папке", тогда в переменной FILEINFO_BASE_DIRECTORY будет C:\Users\Олег
-
@support не понял, а какой путь нужно указать, чтобы получить C:\Users\Олег )?
если путь пока не известный.или я не внимательно вчитался в суть проблемы или ты )
C:\Users\Олег\Desktop
он не знает эту часть \Олег\ она может быть разной, он только знает эту часть C:\Users*\Desktop
это на сколько я понял, и под это сделан пример.
-
@out Ну насколько я понял на входе есть
C:\Users\Олег\Desktop
на выходе должно быть C:\Users\Олег
-
@support на входе C:\Users\не_знает_название_этой_папки\Desktop
на выходе C:\Users\Олег\Desktopзы: или же мне пора спать )
-
@out А, тогда да, лучше как ты написал.
-
@support посмотри как будет время break; http://community.bablosoft.com/post/4139
что-то он иногда не так срабатывает..
правда, у меня версия БАС 15,9,0 После этой уже было 2 обновы.
-
@out Break может не срабатывать если было перемещение точки выполнения во время цикла.
-
@support да, это я замечал, по этому перепроверял, без "ручного вмешательства". Но щас еще запущу.
-
@support попробуй запусти http://community.bablosoft.com/uploads/files/1480712341556-cntfiles.xml в отладке пошагово, просто нажми next step 10 раз, заметишь, что break вышел только из текущего цикла, но не из внешнего, и дальше опять входит во вложенный цикл.
-
@out Да, так и должно быть. Чтобы выйти из внешнего цикла нужно создать переменную и делать break из каждого цикла.
-
@support ээ так не кошерно ) верни как было, break N , чтобы можно было указывать вложенность.
ну или как в JS, можно создавать метку перед циклом, дальше указываешь break МЕТКА; и мы выйдем к нужной метке (с нужного цикла). Это удобно, нужно на практике. (об этом я https://learn.javascript.ru/while-for#метки-для-break-continue)
-
@out Пока можно выполнять код _break(n)
-
@out Label тоже можно поставить, но не в действиях
0_1480726360862_breaklabel.xml
-
@support ох скорее бы получить документацию по всем существующим методам в БАС, но я знаю, как программисты не любят писать ридми,мануалы,документации ))
-
Спасибо обоим за ответ. Разобрался! Что б я без вас делал :)