@rsi
software engineer

C# Чтение и удаление строк из начала файла файла

Здравствуйте! Есть файл в который раз в несколько секунд идет запись с показаниями датчика, есть программа которая эти показания должна забирать. Вопрос, как грамотно забирать уже имеющиеся строки с показаниями и при этом не мешать записи новых если вдруг таймеры чтения и записи совпадут.

Есть идея просто открывать файл и читать построчно, а на последней строке просто обнулять его содержимое, но я совершенно не представляю что произойдет если в этот самый момент софт датчика решит записать новую строку в этот файл.
  • Вопрос задан
  • 4145 просмотров
Решения вопроса 1
@Sumor
При открытии файла вы можете указывать разрешённые совместно с вами действия с файлом.
В случае C# и FileStream за это отвечает параметр FileShare.
public FileStream(
	string path,
	FileMode mode,
	FileAccess access,
	FileShare share
)

Программа записи датчика должна открывать файл с параметром FileShare.Read. Тогда остальные программы могут получить одновременный доступ к этому файлу указав параметр FileShare.ReadWrite. Тогда одновременно программа записи с датчика может писать, а вы можете в то же самое время считывать показания.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Скорее всего ОС просто не даст открыть файл на запись. Либо вам, либо софту датчика. Как на это отреагирует последний - неизвестно - может просто не записать эту итерацию, может ошибку выдать, а может и крешнуться. Если есть возможность остановить софт датчика на время работы вашей парсилки - лучше так сделать. Еще - напишите что за датчик/софт, может кто то подскажет что то более дельное.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы