Вопросы по действиям

Обсуждение программы xStarter
Ответить
Lenny
Пассажир
Сообщения: 12
Зарегистрирован: Чт сен 14, 2006 9:27 am
Откуда: Саратов
Благодарил (а): 0
Поблагодарили: 0

Вопросы по действиям

Сообщение Lenny » Ср сен 20, 2006 1:39 pm

Хочу поговорить о действии "Удалить".
Мне нужно удалить три файла. Создавать для этого три действия "Удалить" не хочется (как-то это не по программистски). В параметрах действия есть кнопка Выбрать файл(ы), то есть я полагаю, речь идёт о выборе нескольких файлов. Однако как я ни старался выбрать более одного файла мне не удалось. :(( Попытка написать список тоже ни к чему не привела: действие не исполнялось. Так всё же возможно ли удалить несколько файлов одним действием?

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Сообщение Alex » Ср сен 20, 2006 1:45 pm

Да, можно. Файлы нужно разделять точкоя с запятой, например так:
c:\far\far.exe;c:\far\license.txt
или Enter, например так:
c:\far\far.exe
c:\far\license.txt

Второе особенно полезно, если список файлов передается, например, из действия по поиску файлов.

Lenny
Пассажир
Сообщения: 12
Зарегистрирован: Чт сен 14, 2006 9:27 am
Откуда: Саратов
Благодарил (а): 0
Поблагодарили: 0

Сообщение Lenny » Ср сен 20, 2006 2:28 pm

Попробовал и вот какие результаты я получил.
1) Действительно, все файлы из списка удаляются, НО! если все файлы существуют. Если не существует хотя бы один, удаления всех остальных не происходит. Это очень досадно.
2) Возвращаясь к кнопке Выбрать файл(ы). Выбрать несколько файлов всё равно нельзя, поэтому нужно либо удалить букву (ы), либо позволить в диалоге выбирать несколько файлов.
PS.: И всё же огромное спасибо всем, кто делает эту нужную прогу и отвечает на всякие вопросы!!!
PPS.: Пока писал это сообщение обнаружил ещё, что когда в списке присутствует несолько файлов, то диалог вообще не открывается. Видимо туда в качестве дефолтной папки передаётся весь этот список.
PPPS.: Чтобы не заканчивать на негативе, ещё раз спасибо авторам!!!

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Сообщение Alex » Пт сен 22, 2006 5:24 am

Спасибо за комментарии, разберусь со списками файлов - отпишусь ;).

Lenny
Пассажир
Сообщения: 12
Зарегистрирован: Чт сен 14, 2006 9:27 am
Откуда: Саратов
Благодарил (а): 0
Поблагодарили: 0

Сообщение Lenny » Ср окт 04, 2006 10:07 am

Вопрос по установке переменных. К сожалению ничего не нашёл про них в хелпе.
1) Возможно ли имя переменной формировать с помощью функций?
2) В пределах чего переменная считается глобальной: секции или всего xСтартера? А локальной?

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Сообщение Alex » Ср окт 04, 2006 11:34 am

1. Да, возможно.
2. Глобальные переменные дейсвтвуют в пределах всех секций. Локальная -в пределах текущей задачи.

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Сообщение Alex » Пт окт 13, 2006 11:22 am

Исправил проблему с удалением файлов. Теперь есть опция, которая задает режим проверки наличия файлов перед удалением.

Lenny
Пассажир
Сообщения: 12
Зарегистрирован: Чт сен 14, 2006 9:27 am
Откуда: Саратов
Благодарил (а): 0
Поблагодарили: 0

Сообщение Lenny » Пт окт 27, 2006 6:51 pm

Порадовала новая версия xStarter 1.85. Более внимательной к пользователям службы поддержки я ещё не видел :D.
У меня родился вопрос по условному оператору IF. И вот как он рождался. Ещё на прошлой версии сделал рекурсивный цикл, когда задача что-то проверяет, если результат успешный, то задача запускает другую, иначе - запускает сама себя и всё повторяется. Если всё время всё плохо, то рекурсия так и крутится, а такие задачи остановить невозможно (знаю по опыту). Тогда я делаю счетчик, чтобы рекурсия крутилась не больше 100 раз. Пытаюсь делать условие: IF count>100 и замечаю, что сравнение идёт как строк. А как же сравнивать числа?

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Сообщение Alex » Сб окт 28, 2006 5:07 am

Да, есть такая проблема в сравнении. Дело в том, что у переменных нет типа как такового, они все считаются строками. Поэтому при сравнении идет сравнение строк.

Выход пока вижу один. Нужно использовать дейтсвие MathOperation для вычисления разницы между числом 100 и count. В условии проверять уже значение MathOperation.Result, если <=0, то останавливать рекурсию. В этом случае сравнение будет происходить как чисел, так как MathOperation.Result имеет тип числа с плавающей запятой.

Lenny
Пассажир
Сообщения: 12
Зарегистрирован: Чт сен 14, 2006 9:27 am
Откуда: Саратов
Благодарил (а): 0
Поблагодарили: 0

Сообщение Lenny » Пн окт 30, 2006 3:09 pm

Хитро придумано! Спасибо.

Ответить