Sannyasin Brahmanathaswami wrote:

>   (rough draft code)
>
> Local sTempParamArray # may good to save a local,
>
> Command saveTempParams
>
>            Put fld "fuelNeed" into  pTempParamArray["fuelNeeded'}
>            Put fld "timeToArrival" into  pTempParamArray["timeToArrival""
>            # etc.
>            Put pTempParamArray into sTempParamArray
>            storeTempParams pTempParamArray
>
> End saveTempParams
>
> command storeTempParams pTempParamArray
>
> put specialFolderPath("documents") & "/tempSavedParams" into tSavedPath
>    put sTempParamArray into url ("binfile:" & tSavedPath)
>
> end storeTempParams

A good outline, but missing a key step: arrays are collections of pointers and in their native form are not a contiguous bytestream, so attempting to write one to disk directly with yield an empty file.

This is where serialization comes in, collecting all the disparate pointer contents and packing them into a bytestream that can be saved or transported, using arrayEncode:

command storeTempParams pTempParamArray
  put specialFolderPath("documents") & "/tempSavedParams" into \
     tSavedPath
  put arrayEncode(sTempParamArray) into url ("binfile:" & tSavedPath)
end storeTempParams


And because arrayDecode will throw a fatal error if you attempt to use it with anything other than actual LSON data, we can't just check "the result" afterward; better to wrap it in a try/catch:

Function getTempSavedParams
  Put specialFolderPath("documents") & "/tempSavedParams" into \
     tSavedPath
  put url ("binfile:" & tSavedPath) into pTempParamArray
  -- Always check I/O for errors:
  if the result is empty then
     return "Error in getTempSavedParams: "& the result for error
   end if
   -- Try as LSON:
   try
     put arrayDecode(pTempParamArray) into pTempParamArray
   catch tErr
     return "Not a valid array file: "& tSavedPath for error
   end try
   --
   return pTempParamArray
end getTempSavedParams


--
 Richard Gaskin
 Fourth World Systems
 Software Design and Development for the Desktop, Mobile, and the Web
 ____________________________________________________________________
 ambassa...@fourthworld.com                http://www.FourthWorld.com

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to