Можно заблокировать доступ к файлу, если очень хочется: Тогда и блокнот будет ругаться при попытке открыть такой файл, и выдаст ошибку №5 (File already open) при вызове Open/Create/Replace File. Однако это на усмотрение программиста. Office блокирует, да. Но многие другие утилиты нет, например AkelPad или WinHex. В MSVS, если память не изменяет, файл по дефолту тоже не блокируется. Принцип блокировки довольно простой - повторный вызов CreateFile с определенным флагом dwShareMode: запретить чтение и запись - 0, запретить только запись - FILE_SHARE_READ, ничего не запрещать - FILE_SHARE_READ | FILE_SHARE_WRITE. А вообще, как по мне, параллельная работа с файлом из нескольких потоков/процессов - плохая практика, хоть и допустима на уровне файловой системы. Конечно, можно юзать Deny Access или семафоры, но это не от хорошей жизни (например, изначально неудачно выбранная архитектура).Artem.spb писал(а):Открыть файл и писать в него - разные вещи. Не зря офисные проги блокируют доступ к открытым документамdadreamer писал(а): Нет, конечно, разве ни разу не открывали в нескольких блокнотах один и тот же текстовик?
Единоразовая запись в файл, без Event структуры
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Единоразовая запись в файл, без Event структуры
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Единоразовая запись в файл, без Event структуры
именно в этом была моя основная мысльdadreamer писал(а): по мне, параллельная работа с файлом из нескольких потоков/процессов - плохая практика.
-
- junior
- Сообщения: 66
- Зарегистрирован: 13 дек 2018, 13:55
- Версия LabVIEW: 2018
- Откуда: Саратов
Re: Единоразовая запись в файл, без Event структуры
[/quote][/quote]Artem.spb,
Хотел бы задать еще вопрос. Почему когда на управлении светодиода стоит кнопка, эвент выполняется один раз ( кейс эвента привязан к состоянию светодиода ) а когда ставлю константу запись идет без остановки, получается что эвент выполняется с постоянно.
Константу поставил для примера, вместо константы будут приходить биты которыми будет осуществляться управление записью.
Файл в 2013 версии
Хотел бы задать еще вопрос. Почему когда на управлении светодиода стоит кнопка, эвент выполняется один раз ( кейс эвента привязан к состоянию светодиода ) а когда ставлю константу запись идет без остановки, получается что эвент выполняется с постоянно.
Константу поставил для примера, вместо константы будут приходить биты которыми будет осуществляться управление записью.
Файл в 2013 версии
- Вложения
-
- запись в файл.vi
- (15.97 КБ) 161 скачивание
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Единоразовая запись в файл, без Event структуры
я не знаю, как оно может НЕ работать от контрола.yakuba26 писал(а):Почему когда на управлении светодиода стоит кнопка, эвент выполняется один раз ( кейс эвента привязан к состоянию светодиода ) а когда ставлю константу запись идет без остановки, получается что эвент выполняется с постоянно.
У вас тут две ОЧЕНЬ большие ошибки.
1) события индикаторов генерируются непрерывно, а не по изменении кнопки, так что они постоянно шпарят независимо, кнопка это или константа. Единственная разница может в значении события. Если кнопка с отскоком, то событие «Т» будет разовым, дальше будут «F»
2) в цикле нет задержки, так что события генерируются НЕПРЕРЫВНО. Примерно с бесконечной скоростью. Конечно, скорость ограничена мощностью процессора, но такие циклы пожирают все доступные ресурсы и их надо избегать. Собственно, посмотрите на значение индикатора "2" и убедитесь сами
-
- junior
- Сообщения: 66
- Зарегистрирован: 13 дек 2018, 13:55
- Версия LabVIEW: 2018
- Откуда: Саратов
Re: Единоразовая запись в файл, без Event структуры
Artem.spb,
Это все тесты, я пробую. Сейчас зашел в тупик и не знаю как быть Подскажите пожайлуста, как сделать однократную запись по изменению события или вообще как можно сделать однократную запись ( какие есть варианты )
я перерыл весь форум и ничего подобного не встретил
Это все тесты, я пробую. Сейчас зашел в тупик и не знаю как быть Подскажите пожайлуста, как сделать однократную запись по изменению события или вообще как можно сделать однократную запись ( какие есть варианты )
я перерыл весь форум и ничего подобного не встретил
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Единоразовая запись в файл, без Event структуры
не на форуме готовые решения надо искать, а думалку включатьyakuba26 писал(а):я перерыл весь форум и ничего подобного не встретил
Два варианта .
-
- junior
- Сообщения: 66
- Зарегистрирован: 13 дек 2018, 13:55
- Версия LabVIEW: 2018
- Откуда: Саратов
Re: Единоразовая запись в файл, без Event структуры
Artem.spb,
Благодарю за помощь
Вот что получилось, все таки решил отойти от эвента.
Благодарю за помощь
Вот что получилось, все таки решил отойти от эвента.
- Вложения
-
- Регистрация события( с флажком ).vi
- (22.77 КБ) 131 скачивание
-
- junior
- Сообщения: 66
- Зарегистрирован: 13 дек 2018, 13:55
- Версия LabVIEW: 2018
- Откуда: Саратов
Re: Единоразовая запись в файл, без Event структуры
потенциал программы настолько огромен, что теряешься в ее возможностях и не замечаешь элементарных вещей.
Поэтому и ищу помощи.
Поэтому и ищу помощи.
-
- professor
- Сообщения: 3407
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Единоразовая запись в файл, без Event структуры
Получилось что-то вроде FGV, но обычно для них используют while loop
-
- junior
- Сообщения: 66
- Зарегистрирован: 13 дек 2018, 13:55
- Версия LabVIEW: 2018
- Откуда: Саратов
Re: Единоразовая запись в файл, без Event структуры
Artem.spb,
я его буду использовать как подприбор, а он и так будет стоять в while loop
я его буду использовать как подприбор, а он и так будет стоять в while loop
-
Vasiliy Baev
- leader
- Сообщения: 545
- Зарегистрирован: 31 окт 2011, 09:02
- Награды: 4
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Благодарил (а): 9 раз
- Поблагодарили: 10 раз
- Контактная информация:
Re: Единоразовая запись в файл, без Event структуры
Edge Detect, Front Detect, Set Reser (Rset Set), Value change и тп были как раз придуманы для таких вещей.
- Вложения
-
- UTIL_Edge_Detect.vi
- (10.3 КБ) 121 скачивание
-
- UTIL_Front_Detect.vi
- (9.97 КБ) 126 скачиваний
-
- UTIL_Reset_Set.vi
- (14.04 КБ) 131 скачивание
-
- UTIL_Set_Reset.vi
- (13.93 КБ) 137 скачиваний
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 12 Ответы
- 600 Просмотры
-
Последнее сообщение Sergey Puzanov
-
- 6 Ответы
- 234 Просмотры
-
Последнее сообщение Artem.spb
-
- 4 Ответы
- 958 Просмотры
-
Последнее сообщение jane_wild