PB8 中怎么实现快速替换txt文件中的内容?

tiancx82 2013-03-06 04:34:58
我想实现这样功能
表 vdm vmc
001 张三
002 李四
003 王五

txt文件中包含了 表 vmc 的内容,我像把txt文件中的vmc替换成vdm,怎么实现?

补充: 1 用fileopen,fileread以及filewrite效率太慢
2 用网上推荐的方法

“string ls
int li
oleObject ADODB,ScrCtl
//(1)打开并读取文件
ADODB = CREATE OLEObject
if ADODB.ConnectToNewObject("ADODB.Stream") <> 0 then
messagebox('', '无法连接【ADODB.Stream】!')
return -1
end if
ADODB.Type = 1 //二进制数据Binary
ADODB.Mode =3 //具有读/写权限
ADODB.Open()
ADODB.LoadFromFile(as_file)
ADODB.Position = 0 //Position为0才能设置Charset
ADODB.Type = 1 //blob数据
ls = string(ADODB.Read() )
//(2)替换文本内容
ScrCtl = create oleobject
if ScrCtl.connecttonewobject("MSScriptControl.ScriptControl") <> 0 then
messagebox('', '无法连接【MSScriptControl.ScriptControl】!')
return -1
end if
ScrCtl.Language = "JavaScript"
ScrCtl.Eval("function clrn(str){return str.replace(/" + as_search + "/g,'" + as_replace + "')}")
ls = string(ScrCtl.CodeObject.clrn(ls))
destroy ScrCtl
//(3)保存并关闭文件
ADODB.Position = 0
ADODB.write(blob(ls))
//保存为文本文件
ADODB.SaveToFile( as_file, 2)
//清空缓冲区数据
ADODB.flush()
//关闭流
ADODB.Close()
destroy ADODB

return len(ls)

替换后,文件末尾有问题,有时多了几行内容。


除了上面方法,还有什么方法?请大师指点,详细点,谢谢
...全文
497 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
测了 2013-03-20
  • 打赏
  • 举报
回复
都是同行,兄弟啊,不要计较这了吧。。我没有分了,希望能给点分
tiancx82 2013-03-19
  • 打赏
  • 举报
回复
引用 9 楼 wanjia5202011 的回复:
咋还不结贴啊。。
没有可以解决问题的。你是来灌水的把,哈哈
WorldMobile 2013-03-12
  • 打赏
  • 举报
回复
用循环来处理,直接对列进行操作,使用getitemstring和setitem来处理,速度要比用find快
测了 2013-03-12
  • 打赏
  • 举报
回复
咋还不结贴啊。。
tiancx82 2013-03-11
  • 打赏
  • 举报
回复
引用 6 楼 lzp_lrp 的回复:
用数据窗口来实现比较方便,建一个数据窗口,把数据导入到数据窗口中,然后进行替换操作,然后再saveas成文本文件
导入到数据窗口中怎么替换呢?用循环吗?
Powertion 2013-03-08
  • 打赏
  • 举报
回复
导到数据库中处理就方便多了
WorldMobile 2013-03-08
  • 打赏
  • 举报
回复
用数据窗口来实现比较方便,建一个数据窗口,把数据导入到数据窗口中,然后进行替换操作,然后再saveas成文本文件
tiancx82 2013-03-08
  • 打赏
  • 举报
回复
导数据库比较麻烦,得先把文件读到数据保存,替换后写文件,效率机器低下
tiancx82 2013-03-07
  • 打赏
  • 举报
回复
楼上能给一下怎么替换的代码吗?多谢
测了 2013-03-07
  • 打赏
  • 举报
回复
BlobEdit() 功能将任意类型的数据插入到Blob类型变量的指定位置。 语法BlobEdit ( blobvariable, n, data ) 参数blobvariable:Blob类型的已初始化变量,将向该变量中插入数据n:指定插入位置,有效值在1到4,294,967,295之间data:要插入到Blob类型变量中的数据,其数据类型可以是任何有效的PowerBuilder数据类型返回值Unsigned long。函数执行成功时返回下次可以插入数据的位置;如果blobvariable变量中空间不够或任何参数的值为NULL,则BlobEdit()函数返回NULL。
tiancx82 2013-03-06
  • 打赏
  • 举报
回复
自己顶一下,有谁知道 用blobedit()连接 怎么实现?或者其他的方法也行,多谢啊

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧