Вообщем всем спасибо, за помощь, проблему решил сам!)
Поможите чем сможите
Вот у меня такая штука.
PROGRAM MAC_Control
VAR
PRG_MAC_Contrl_Start:BOOL:=TRUE;
diFile: DWORD;
ReadSizeByte: DWORD;
File_Size: DWORD;
Local_Addres_DATA:ARRAY [0..255] OF BYTE;
END_VAR
IF PRG_MAC_Contrl_Start THEN
diFile:=SysFileOpen('local_addres.dat','r');
IF diFile > 0 THEN
File_Size:=SysFileGetSize('local_addres.dat');
ReadSizeByte:=SysFileRead(diFile, ADR(Local_Addres_DATA), File_Size);
SysFileClose(diFile);
ELSE
; (* Error file *)
END_IF
PRG_MAC_Contrl_Start :=FALSE;
END_IF
Размер показывает, если файл кинуть на ПК и посчитать посимвольно + на каждый перенос 2 байто. Размер верен.
Но данные не читаются?
Покурил экземплы, форум все вроде очень похоже.
Что может быть?
Вот еще вопросик - Как я понимаю размер файла local_addres.dat всегда постоянен 76 байт. Это так?
Ну чтоб массив не от 0..255 а 0..76 делать.
Спасибо.
С чтение разобрался. ( помогла перезагрузка , почему-то заводской сброс не помогал? )
С длинной файла вопрос остается.
Спасибо.
Если так необходима экономия памяти выделяй ее динамически, например SysMemAlloc из SySLibMem.lib )
И ышо. методически грамотней разбивать обращения к файлам по циклам ПЛК. то есть открыли - в следующем цикле измерили длинну. в следующем прочитали (а может быть и не в одном) в следующем закрыли.