PDA

Просмотр полной версии : Запись в бинарный файл по установленному указателю



Lokkie
29.01.2020, 12:20
Здравствуйте! Помогите разобраться в таком вопросе. Как можно осуществить запись в бинарный файл по заранее установленному указателю? Использую пример из руководства библиотеки CAA_File, чтение по заранее установленному указателю осуществляется, сделал то же самое для записи, но запись происходит только в конец файла. Подскажите, почему установка указателя на выбранный адрес не работает?

Евгений Кислов
29.01.2020, 12:40
Добрый день.

В версии CODESYS V3.5 SP11 Patch 5 в библиотеке CAA File требуемый функционал действительно отсутствует – он был добавлен только в версии CODESYS V3.5 SP14 Patch 3 (в ней появился режим MREADPLUS).
Описанную задачу в упомянутой версии CODESYS можно решить с помощью библиотеки SysFile – в ней присутствует режим открытия файла AM_READ_PLUS.
Для установки позиции записи следует использовать функцию SysFileSetPos.

P.S. - READ_PLUS - это режим открытия файла, в котором поддерживается и чтение, и запись.

Lokkie
29.01.2020, 12:55
Большое спасибо за разъяснения. В описании библиотеки CAA_FIle файла CDSv3.5_Archives_v2.0, по поводу ФБ FILE.SetPos сказано - "Используется для чтения/записи в выбранный фрагмент файла", это и вызывает неразбериху.

Евгений Кислов
29.01.2020, 13:30
Большое спасибо за разъяснения. В описании библиотеки CAA_FIle файла CDSv3.5_Archives_v2.0, по поводу ФБ FILE.SetPos сказано - "Используется для чтения/записи в выбранный фрагмент файла", это и вызывает неразбериху.

Он действительно для этого и используется - в режиме MWRITE, например.
Просто остальное содержимое файла при этом перетрется.

Lokkie
29.01.2020, 13:34
Он действительно для этого и используется - в режиме MWRITE, например.
Просто остальное содержимое файла при этом перетрется.

Большое спасибо за информацию. Подскажите, пожалуйста, а руководство для библиотеки SysFile имеется у компании ОВЕН, где его можно взять? Спасибо!

Евгений Кислов
29.01.2020, 13:49
Большое спасибо за информацию. Подскажите, пожалуйста, а руководство для библиотеки SysFile имеется у компании ОВЕН, где его можно взять? Спасибо!

У нас нет примера для этой библиотеки.
В справке CODESYS есть вся нужная информация о функциях.
Принципиальное отличие от CAA File только одно - библиотека синхронная и, соответственно, построена на функциях, а не на ФБ.