2006/01/07 | [原创]Lingo数据类型保存的最佳解决方案 PropSave Xtra。
类别(开发文献) | 评论(0) | 阅读(368) | 发表于 17:22
文章作者:爱伊

多媒体开发中常常会碰到一些Lingo数据类型需要保存,可以是一个字符或者一个列表等等,虽然用file IO xtra也可以完成类似的操作,但是代码复杂,且容易出错。这里推荐一款Lingo数据类型的保存插件 PropSave Xtra,代码简洁,功能实用。

主要功能和特点:

1..直接保存Lingo数据类型到硬盘,而不需要实现转换为字符串。

2..读取之前保存的内容,可以百分百还原为之前保存的数据类型。

3..所保存的文件内容是乱码的,可以防止保存信息泄漏。

4..保存时,可以加参数,如加 #prefsFolder: true,则会将指定数据按照指定文件名保存到系统目录中,而不需要你判断系统目录的所在位置。

简洁的代码:

FileIO保存一个有几个值的列表时,代码如下:
    outputList = [ 1234, #symbol, 1.002, [ 1, 2, 3 ], rect( 4, 5, 6, 7 ) ]
  filePathName = the moviePath & "testFileIO"

  fileObj = new( xtra "fileIO" )
  if not objectP( fileObj ) then return -1
  fileObj.openFile( filePathName, 1 )
  err = fileObj.status()
  if not ( err ) then ---FILE EXISTS, DELETE
    fileObj.delete()
  else if ( err and not ( err = -37 ) ) then return err
  fileObj.createFile( filePathName ) ---CREATE NEW
  err = fileObj.status() if ( err ) then return err

  fileObj.openFile( filePathName, 2 ) ---OPEN THIS FILE, WRITE PERM
  err = fileObj
.status() if ( err ) then return err

  fileObj.writeString( string( outputList ) ) ---CONVERT TO STRING, WRITE

  fileObj.closeFile()

PropSave Xtra保存上述列表,只有几行简洁的代码:
  outputList = [ 1234, #symbol, 1.002, [ 1, 2, 3 ], rect( 4, 5, 6, 7 ) ]
  filePathName = the moviePath & "testFileIO"

  savePropsToDisk( filePathName, outputList )

支持数据类型:
   #void
   #integer
   #symbol
   #string
   #picture
   #float
   #list
   #point
   #rect
   #propList
   #member
   #castLib
   #sprite
   #soundSprite
   #color
   #date
   #media*   部分支持,对field 演员和button 演员(pushbutton, radiobutton, checkbox)的支持不太好,建议避免保存field 演员和button 演员的media。
 
不支持数据类型:
   #xtra
   #instance
   #object
   #script

 

保存范例代码:

 outputList = ["大家好",1234,"Hello!!!",#symbol, 1.002, [1,2,3], rect( 4, 5, 6, 7 ),point(1,2),[[1,2,3],[1,2,3]]]

 filePathName = the moviePath & "savedata.dat"

 

-- 保存列表 outputList 到指定文件 filePathName,要有完整路径名。

  savePropsToDisk(filePathName, outputList)  

 

-- 保存列表 outputList 指定文件 "savedata.dat",不要有完整路径名,自动保存到系统目录下。

  savePropsToDisk("savedata.dat",outputList,[#prefsFolder: true]) 

 

读取范例代码:

  -- 从当前目录读取"savedata.dat"文件里面的保存数据。

  pList = loadPropsFromDisk(the moviePath & "savedata.dat")  

 

  -- 从系统目录读取"savedata.dat"文件里面的保存数据。

  pList = loadPropsFromDisk("savedata.dat",[#prefsFolder: true]) 

 

 

PropSave Xtra国外下载连接
 
本站下载连接(除了插件外还包括dir演示文件):
0

评论Comments