Nella nuova versione FileMemoryDump_v1 è stato aggiunto parametro Mode per selezionare il modo in cui i dati sono presenti nel file. Ora definendo il modo FILEMDUMP_MODE#ASCII viene utilizzata una formattazione ascii che è più leggibile rispetto alla formattazione binaria.
E’ stato aggiunto anche il parametro FPOfs, che permette di utilizzare un offset sull’accesso in lettura/scrittura sul file definito, questo permette di accodare ad un file esistente altra memoria.
E’ stato modificato il nome ai parametri MBufferPtr che diventa MBAdd e MBufferSize che diventa MBSize.
Ecco un programma che utilizza la vecchia versione.
VAR
DBuf : ARRAY[0..15] OF BYTE; (* Data buffer *)
MDump : FileMemoryDump; (* FBinstance *)
END_VAR
// -------------------------------------------------------------------------
// MEMORY DUMP
// -------------------------------------------------------------------------
// On set by debug the Read or Write command the memory is read or write on
// file. The command resets when operation is finished.
MDump.MBufferPtr:=ADR(DBuf); //Dump memory address
MDump.MBufferSize:=SIZEOF(DBuf); //Dump memory size
MDump.Filename:=ADR('C:/MRetain.txt'); //Dump memory file
MDump(); //Execute the FB
IF (MDump.Done) THEN MDump.Read:=FALSE; MDump.Write:=FALSE; END_IF;
Ecco come si può modificarlo utilizzando la nuova versione.
VAR
DBuf : ARRAY[0..15] OF BYTE; (* Data buffer *)
MDump : FileMemoryDump_v1; (* FBinstance *)
END_VAR
// -------------------------------------------------------------------------
// MEMORY DUMP
// -------------------------------------------------------------------------
// On set by debug the Read or Write command the memory is read or write on
// file. The command resets when operation is finished.
MDump.MBAdd:=ADR(DBuf); //Dump memory address
MDump.MBSize:=SIZEOF(DBuf); //Dump memory size
MDump.Mode:=FILEMDUMP_MODE#BINARY; //Dump mode
MDump.Filename:=ADR('C:/MRetain.txt'); //Dump memory file
MDump.FPOfs:=0; //File offset
MDump(); //Execute the FB
IF (MDump.Done) THEN MDump.Read:=FALSE; MDump.Write:=FALSE; END_IF;