Чтение из файла

Работа с файлами и базами данных
Ответить
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Чтение из файла

Сообщение irena_abr »

Всем - здраствуите! Одна часть программы записывает в файл данные, вторая - считывает требуемые данные из этого файла. Запись происходит по времени, а считать мне надо только тогда, когда данные в файле изменились. Хотела использовать File Info(OpenG), но непонятно как "ловить" модификацию фаила. Понятно, что по времени, если время модификации больше предыдущего времени, то вызывать VI ReadFile. A где (и как хранить предыдущее время модификации фаила.Вот, что натворила, но не работает как надо(вместо ReadFile - просто для проверки поставила месадж Спасибо!
Вложения
My_file_info.vi
(45.23 КБ) 204 скачивания
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Чтение из файла

Сообщение FireFly »

Возможно так заработает :dntknw:
У меня просто нет VI которая у вас смотрит дату последнего изменения.
Кстати ещё можно смотреть размер файла стандартной функцией, и смотреть не изменился ли он (но это будет работать только в случае если файл не перезаписывается, а только дописывается).
И ещё совет - в каждом цикле делайте задержку, иначе он будет слишком сильно грузить систему. Я однажды не сделал задержку в цикле, создал exe, проверил что всё работает и поставил прогу работать в монтажном участке, но при запуске комп завис, а я был отруган :( проверив у себя на компе выяснил что загруженно 50% проца (одно ядро из двух), поэтому я и не замечал косяка. Теперь никогда не забываю про задержки :)
Вложения
S1.PNG
S1.PNG (10.58 КБ) 5144 просмотра
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Чтение из файла

Сообщение Konstantin Sumenko »

Проверку тоже надо в цикле делать параллельном или в том же. Иначе она выполнится единожды до или после выполнения цикла.
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Чтение из файла

Сообщение irena_abr »

Спасибо большое! Работает! Никак не привыкну к шифт регистру! И про время как всегда забыла, спасибо!
Вот, ловите FileInfo! Авось когда пригодится! :wink: Там еще куча всего полезного(см. на линк)
Вложения
File Info__ogtk.vi
(154.57 КБ) 234 скачивания
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Чтение из файла

Сообщение irena_abr »

ДА нет, вроде не единожды выполняется Вот, гляньте Я запустила этот Vi,потом вручную посохраняла фаил , сколько раз сохраняла, столько получала сообщение
Вложения
My_file_info_work.vi
(40.15 КБ) 182 скачивания
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Чтение из файла

Сообщение irena_abr »

А вот как бы задержку какую сделать, чтобы не немедленно срабатывал Case, а через доли сек,чтобы не возникло конфликта, если фаил еше перезаписывается, например?
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Чтение из файла

Сообщение FireFly »

Flat Sequence Structure вам в помощь. В первом "кадре" делайте запись, во втором проверку... Хотя смотря как у вас программа устроена. Синхронизовать процессы можно по разному...
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
Forward

Activity Tutorials Black
professional
professional
Сообщения: 337
Зарегистрирован: 03 мар 2008, 12:41
Награды: 3
Версия LabVIEW: 2010
Откуда: Кишинев
Контактная информация:

Re: Чтение из файла

Сообщение Forward »

irena_abr писал(а): Одна часть программы записывает в файл данные, вторая - считывает требуемые данные из этого файла. Запись происходит по времени, а считать мне надо только тогда, когда данные в файле изменились.
1) Что за случай когда приходится использовать файл для передачи данных? Почему нельзя передавать данные традиционным способом? Или нужно хранить очень много разных данных? Или это вообще 2 разные экзешки?
2) Если это все таки одна программа и в ней один поток тогда сразу после функции "Запись" вызывать функцию "Чтение" без всяких заморочек и проверок.
Если потоков несколько, то надо воспользоваться палитрой синхронизации (семафор, события..), тогда не будет возникать ситуации одновременного доступа к файлу из разных потоков.
3) Если это 2 разные программы работающие на одном или разных компах с доступом к одному сетевому ресурсу, то в любом случае лучше не полагаться на таймер, а предусмотреть какую-нибудь синхронизацию между ними (TCP/IP например).
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Чтение из файла

Сообщение irena_abr »

Спасибо, что ответили. Программа одна. Взвешивает овощи, которые падают с конвеиера на весы.
Т.к. взвешивание , так сказать, в движении, требуется определенная корректировка.
Вес записывается в фаил через определенныи момент времени. Структура фаила - дата, время, вес в данныи момент. Нужно знать, какои вес прошел через конвейер за смену(их 3 пока)Накапливаюшийся вес - среднее значение собственно взвешенное минус вес самои тары, куда падают овощи, приплюсовываю к этому значению интерполяцию из файла за время работы смены - получаю итоговыи вес за смену. Вот такая передо мнои поставлена задача
Аватара пользователя
Forward

Activity Tutorials Black
professional
professional
Сообщения: 337
Зарегистрирован: 03 мар 2008, 12:41
Награды: 3
Версия LabVIEW: 2010
Откуда: Кишинев
Контактная информация:

Re: Чтение из файла

Сообщение Forward »

Не совсем понял про интерполяцию с файлом? Какое промежуточное значение нужно найти и зачем?
Потом я все таки не понял зачем прибегать к постоянному считыванию файла после каждого его изменения? Просто помимо текущего взвешивания помнить суммарный: взвесили, получили данные, записали их в файл и параллельно с этим вычислили текущий суммарный вес и т.п. Ведь для этого все необходимые данные известны?!
Ну а если все таки с файлом, то см. пункт 2 предыдущей мессаги.
irena_abr

Activity
developer
developer
Сообщения: 261
Зарегистрирован: 22 дек 2008, 14:07
Награды: 1
Версия LabVIEW: 8.5
Контактная информация:

Re: Чтение из файла

Сообщение irena_abr »

Да, возможно и так. Спасибо
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Сохранение данных»