前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

PB关于读写二进制文件的问题 - CSDN论坛 - CSDN.NET --> 首页 论坛帮助 论坛牛人 论坛地图 CSDN > CSDN论坛 > PowerBuilder > 基础类 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 xiaobai1988 PB关于读写二进制文件的问题 [问题点数:100分,结帖人xiaobai1988] 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 只显示楼主 收藏 xiaobai1988 xiaobai1988 等级: 结帖率:80% 楼主 发表于: 2012-06-07 01:49:45 我想通过PB自带的文件操作函数FileWrite创建一个dat文件或者db文件,然后向这个文件里写入信息,我是通过流的方式写入的(写入的数据类型我使用的blob),但是通过记事本等编辑软件打开文件后,依然显示的是字符串,我需要的结果是打开后显示乱码,大家帮一下忙,我是PB新手! 分享到: 更多 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 回复次数:8 xiaobai1988 xiaobai1988 等级: 结帖率:80% #1 得分:0 回复于: 2012-06-07 01:55:31 我的代码如下: string str_data long hdl_user int wstate blob blb_data str_data = sle_data.text blb_data = blob(str_data) if(FileExists("user.db")) then else hdl_user = FileOpen("user.db",StreamMode!,Write!) wstate = FileWrite(hdl_user,blb_data) if isnull(wstate) or (wstate = -1) then messagebox("提示","写入文件出错!") else messagebox("提示","写入文件成功!") end if end if 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 xiajinxian xiajinxian 等级: 结帖率:100% #2 得分:0 回复于: 2012-06-07 12:38:33 肯定是字符串,记事本也是类似string(blob)函数 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 xiaobai1988 xiaobai1988 等级: 结帖率:80% #3 得分:0 回复于: 2012-06-07 13:55:56 引用 2 楼 的回复:肯定是字符串,记事本也是类似string(blob)函数 那该怎么做呢?谢谢 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 xuam xuam 等级: 结帖率:100% #4 得分:5 回复于: 2012-06-08 09:00:51 对文件内容做个加密再写,读时解密. 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 lzp_lrp lzp_lrp 等级: 结帖率:98.98% 2295 #5 得分:90 回复于: 2012-06-08 09:22:01 主要是因为你的内容都是字符,试一下这个代码 string str_data long hdl_user int wstate blob blb_data str_data = sle_data.text blb_data = blob(str_data) //增加以下代码 byte lb_temp[] lb_temp[1] = 254 lb_temp[2] = 255 blb_data = blob(lb_temp) + blb_data if(FileExists("user.db")) then else hdl_user = FileOpen("user.db",StreamMode!,Write!) wstate = FileWrite(hdl_user,blb_data) if isnull(wstate) or (wstate = -1) then messagebox("提示","写入文件出错!") else messagebox("提示","写入文件成功!") end if end if 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 lzp_lrp lzp_lrp 等级: 结帖率:98.98% 2295 #6 得分:0 回复于: 2012-06-08 09:22:38 需要用的时候,再把前两个字符去掉 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 xiaobai1988 xiaobai1988 等级: 结帖率:80% #7 得分:0 回复于: 2012-06-08 12:56:50 引用 6 楼 的回复:需要用的时候,再把前两个字符去掉 谢了,我已采用加密后再写入的方式! 问一下,pb不能向其他语言那样直接以流方式写入到文件,然后用记事本打开就是乱码么? 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 xiajinxian xiajinxian 等级: 结帖率:100% #8 得分:5 回复于: 2012-06-08 14:34:42 各语言应该都一样,因你的流本来就是文本,所以写进去还是文本 对我有用[0] 丢个板砖[0] 引用 | 举报 | 编辑 删除 管理 管理菜单 置顶 推荐 锁定 移动 编辑 删除 帖子加分 帖子高亮 结帖 发帖 回复 写出你眼中的IE11 赢取新年好礼! 勇敢写出你的爱 赢莫文蔚签名大礼 2014年4月微软MVP申请开始了! 陈勇- 敏捷开发现状及发展之路 CSDN高校俱乐部 高校全新改版邀你来学习和挑战 回复内容 每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分 你还可以输入10000个字符(Ctrl+Enter) 请遵守CSDN用户行为准则,不得违反国家法律法规。 转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace [关闭] [关闭]