powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сделать паузу на 1 секунду
15 сообщений из 15, страница 1 из 1
сделать паузу на 1 секунду
    #33086232
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня в цикле создаются файлы с уникальным именем(некий префикс+текущее дата-время). иногда итерация выполняется очень быстро(меньше секунды) и имя уже не уникально.
какая функция ставит паузу, кроме wait.
wait не подходит потому что один wait уже висит(типа "ждите идет работа") и не хотелось бы его каждую итерацию делать заново.
заранее спасибо
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33086249
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INKEY() ?
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33086407
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi lesha_spb!

1) Sleep - это АПИ функция. Имеет 1 параметр - время останова в ms (т.е. тысячных долях секунды).
2) Просто НЕ НАДО делать имена на основе DateTime - используй последовательный счётчик для формирования имени (или его части - лишь бы было уникальное имя) - т.е. решай саму проблему, а не костыли какие-то кривые к проге приделывай :(

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33086432
Данилов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3. SYS(3) - Legal File Name
Returns a legal file name that can be used to create temporary files.
4. Remarks:
SYS(3) may return a non-unique name when issued successionally on a fast computer. Use SUBSTR(SYS(2015), 3, 10) to create unique, legal eight character file name.
5. А чего упираться в 8 символов, действительно, добавить от души еще 4, а в этих четырех счетчик :-)
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33087267
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi lesha_spb !

А по-моему, в любом случае не помешает - вставить процедуру проверки создаваемого файла на уникальность (бвыают удивительные случаи, когда все равно, несмотря ни на что получается то же имя, что уже есть), и если такой же файл обнаружен - прибавлять 1, если и такой есть - опять +1 и... так до бесконечности
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33088238
Goose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Occurs when the number of milliseconds specified in the Interval property has elapsed.

PROCEDURE Timer.Timer
[LPARAMETERS nIndex]
Parameters
nIndex
Uniquely identifies a control if it is in a control array.
See Also
Interval Property | Reset Method

Applies To: Timer
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33095315
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к такому формату имени там дальше много привязано, так что имя должно быть именно таким, иначе кучу всего переделывать.
с добавлением единицы - хорошая идея. но в моем случае возникает проблема когда занчение SUBSTR(TTOC(DATETIME(),1),5) начинается с нуля(меняется общая длина последовательности) и соответственно это надо дополнительно обрабатывать. плюс проверка на уникальность - в большинстве это придется делать n раз. Также надо учитывать вариант когда в одну секунду умещаются, скажем, 3 файла или более. тогда придется плюсовать не один раз а два и более. в общем не очень удобно в моем случае.
Сделал так:
local suff
suff=SUBSTR(TTOC(DATETIME(),1),5)
do while (некое условие)
....
cur_tmp_time = SUBSTR(TTOC(DATETIME(),1),5)
IF suff!=cur_tmp_time
suff = cur_tmp_time
ELSE
DO WHILE (suff==cur_tmp_time)
suff = SUBSTR(TTOC(DATETIME(),1),5)
ENDDO
ENDIF
...
enddo

уникальность умени файла обеспечивает этот самый suff. да это получается искуственное замедление, но в моем случае это самый удобный вариант
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33096373
Samvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не пробовал в имени файла использовать и доли секунды?
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33097183
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а какая функция возвращает время с долями секунды?
Плюс у меня дальше привязка к длине имени файла:(
Так что наверное все же удобней так как я написал. файлов генерится пока немного, если будет существенная задержка тогда буду думать
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33097464
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>а какая функция возвращает время с долями секунды?
SECONDS( )
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33097500
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Плюс у меня дальше привязка к длине имени файла:(

Кстати, у меня был похожий соучай - в FPD2.6 - там длина файла 8+3 - никуда не денешься :(, вот мне пришло в голову - использовать еще и расширение файла для создания уникального имени.
Скажем, если SECOND() вернула 12345.678 - "XXX12345.678"
То, что расширения все разные - в принципе ерунда (если об этом знать :)
Может такой способ тебе как-нибудь и пригодится?
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33099197
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за ответы. пока пусть будет с искуственной задержкой.
будет время переделаю, чтоб не было привязки к длине файла и буду одним из оговоренных здесь способов делать уникальное имя.
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33100088
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Crispy!

Вот появятся завтра чуть более быстрые компьютеры и повалится твой код. НЕ НАДО к DateTime привязываться - если уж они тебе отдельно нужны - используй, но для уникальности нужны другие средства.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33100230
Crispy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi, Igor Korolyov !

>Вот появятся завтра чуть более быстрые компьютеры...

Дай-то, Бог! - Чтобы появились именно ТАМ, где надо ;) А то...
Лишь бы появились - выкрутимся
...
Рейтинг: 0 / 0
сделать паузу на 1 секунду
    #33105132
lesha_spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
согласен. надо делать некий внутренний счетчик.
просто руки не доходят
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сделать паузу на 1 секунду
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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