当前位置: 代码迷 >> PB >> PB8 中如何实现快速替换txt文件中的内容
  详细解决方案

PB8 中如何实现快速替换txt文件中的内容

热度:148   发布时间:2016-04-29 06:49:35.0
PB8 中怎么实现快速替换txt文件中的内容?
我想实现这样功能 
表  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)   
” 
替换后,文件末尾有问题,有时多了几行内容。


除了上面方法,还有什么方法?请大师指点,详细点,谢谢
javascript TXT??提婚?PB?

------解决方案--------------------
BlobEdit()
功能将任意类型的数据插入到Blob类型变量的指定位置。
语法BlobEdit ( blobvariable, n, data )
参数blobvariable:Blob类型的已初始化变量,将向该变量中插入数据n:指定插入位置,有效值在1到4,294,967,295之间data:要插入到Blob类型变量中的数据,其数据类型可以是任何有效的PowerBuilder数据类型返回值Unsigned long。函数执行成功时返回下次可以插入数据的位置;如果blobvariable变量中空间不够或任何参数的值为NULL,则BlobEdit()函数返回NULL。 


------解决方案--------------------
导到数据库中处理就方便多了
------解决方案--------------------
用数据窗口来实现比较方便,建一个数据窗口,把数据导入到数据窗口中,然后进行替换操作,然后再saveas成文本文件
------解决方案--------------------
用循环来处理,直接对列进行操作,使用getitemstring和setitem来处理,速度要比用find快
  相关解决方案