Такой код работаетКод:loadReception : BOOL; saveReception : BOOL; hFile : DWORD; (* дескриптор файла рецептов *) reception : ARRAY [0..9] OF PROD_RECEPT; IF loadReception THEN (* при загрузке плк *) hFile:=SysFileOpen('rcpt.bin', 'r'); (* получение дескриптора файла *) IF hFile>0 THEN (* если файл существует *) logFileSize := SysFileGetSize('rcpt.bin'); (* вычисляем размер файла *) (* читаем данные по минимуму, либо размер файла, либо размер массива *) IF SysFileRead(hFile, ADR(reception) ,MIN(UDINT_TO_DWORD(logFileSize) ,INT_TO_DWORD(SIZEOF(reception)))) <> 0 THEN (* если приняли соответствующее количество байт *) SysFileClose(hFile); (* закрываем файл *) loadReception:=FALSE; ELSE SysFileClose(hFile);loadReception:=FALSE; END_IF; ELSE loadReception:=FALSE; END_IF; END_IF;
Не понятно зачем Вы рецепты в разные файлы пишите, не забывайте что к каждому файлу пишется еще служебная информация, поэтому такой способ больше занимает место на флеш




Ответить с цитированием