| 操作系统 办公 实用知识 设计 开发 WEB开发 移动开发 数据库 软件工程 网管 安全 管理 信息化 答疑 渠道 |
用FileIO读取二进制数据(二)在前一篇文章里,我们讨论了如何利用FileIO从非文本文件中读取数据的问题,本次我们讨论用FileIO编辑现有文件,例如MP3文件上,或是创建新文件,例如从Director 的cast member中输出位图文件。 编辑MP3文件 写二进制文件最简单的例子莫过于编辑MP3文件的标签。这总比新建文件要来得简单,你不必去弄清整个文件结构,只需明白歌曲信息是储存在最后128个字节里。 on writeBinaryFile filePath, byteList, fileStartByte, listStartByte, deleteOriginalFile result = 0 if fileObj.status () = 0 then fileObj.setPosition (fileStartByte-1) repeat with index = listStartByte to listLength fileObj.closeFile ()
各参数意义如下: filePath 所创建或修改文件的完整路径。 byteList 包含有从0到255的线性列表。对ASCII文本文件而言,将从32到126.ASCII字符值可参考http://www.asciitable.com/.对于其它的二进制值,情况会更复杂一些。现在我们仅需关注文本。 fileStartByte 标示从如处开始写数据.(对不存在的文件,函数fileObj.setPosition()会忽略.) listStartByte 在byteList中如果不是所有的数据都需保存的话, 确定其起始位置 。这极其有用,例如,你仅需对图像数据的某一处进行修改. delteteOriginalFile 允许替换原有文件. 例子example mp3_editor.dir演示了如何使用writeBinaryFile,包括其它的一些处理程序,在写mp3文件前,格式化mp3头文件。这提供了一个如何读和写文件片断的极好例子.记住:所有读出或写进的信息依然是以ASCII方本保存在二进制文件末尾,这一点要我们去关心数据类型。 数据类型 文件中的数据以不同的形式存在:布尔型、整型、浮点型、、文本型等.相对于只能支持整型和浮点型数字数据的Lingo而言,其它大多数语言能支持更多形式的整型和浮点型,下面将要涉及。为了能处理文件中的数据,我们需要知道这些数据的类型,以利于将其转换成Lingo中相应的数据类型。
今日推荐
|
重点推荐
领军企业技术文库
+更多领军技术文库
最新专题
电子杂志订阅
| ||||||||