Thanks Phil, I'll give that a try. I was using both base64 and array encodings but I was stacking them together, like:
base64Encode(arrayEncode(tArray)) Seems like that should work but maybe its troublesome. Pete lcSQL Software <http://www.lcsql.com> On Wed, Jan 2, 2013 at 8:33 PM, Phil Davis <rev...@pdslabs.net> wrote: > Hi Pete, > > Here's what I do on a regular basis (with names changed to protect the > innocent - Sgt. Friday would be pleased). I use "get url" instead of > open/read/close" but it seems to me either should work. I don't know if the > 'waits' in my code make much difference: > > > put arrayFromFile(tMyFilePath) into tMyArray > put "new stuff" into tMyArray["buckets"][15] > SaveArrayToFile tMyArray, tMyFilePath > > > > command SaveArrayToFile pArray, pFilePath > if (the keys of pArray = empty) or (pFilePath = empty) then > reportError "Bad param" > exit to top > end if > > put base64Encode(arrayEncode(**pArray)) into tFileData > put tFileData into url ("file:" & pFilePath) > if the result <> empty then -- an error occurred > reportError "Error while saving file" > exit to top > end if > end SaveArrayToFile > > > > function ArrayFromFile pFilePath > if there is a file pFilePath > then -- unpack it and return it > > get url ("file:" & pFilePath) > if the result = empty -- we got the file > then -- decode & return the array > put base64Decode(it) into tArrayData > if the result <> empty then > reportError "Could not base64Decode" > exit to top > end if > > wait 0 seconds -- just for fun > put arrayDecode(tArrayData) into tArrayA > if the result <> empty then > reportError "Could not arrayDecode" > exit to top > end if > > wait 0 seconds -- just for fun > return tArrayA > else -- exit with error > reportError kMsgCouldNotReadArrayFile > exit to top > end if > > else -- no file was found > > reportError "file not found:" && pFilePath > return empty > > end if > end ArrayFromFile > > > HTH - > Phil Davis > > > > > On 1/2/13 6:55 PM, Peter Haworth wrote: > >> I'm writing an arrayencoded array to a disk file using write to file. >> When >> I read the file back into memory with read from file until EOF and then >> try >> to arraydecode it, I get a runtime error "arraydecode:failue". In debug, >> I >> can see data appear in it right after the read. >> >> I've tried all possible combinations of reading/writing binary and also >> base64encoding the arrayencoded array. Same result every time. >> >> The only thing I think might be a problem is that after reading the file, >> the result is set to "eof". It's a little hard to tell from the >> dictionary whether I should expect that when I tell the read to read until >> eof. If it is an indication that the read encountered eof before >> completing, I can see that the arraydecode would fail but I'm not sure why >> that would happen. >> >> Any ideas? >> >> Pete >> lcSQL Software <http://www.lcsql.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<http://lists.runrev.com/mailman/listinfo/use-livecode> >> >> > -- > Phil Davis > > > ______________________________**_________________ > 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<http://lists.runrev.com/mailman/listinfo/use-livecode> > _______________________________________________ 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