版块 > 技术问题 > 替换 函数的使用方法
消息:
29
想用 替换()函数 来达到修改文件的目的,但需要修改的文件是复合型的文档,
使用的方法是
文件打开()
文件读()
替换()
文件写()
跟踪发现文件读()返回的字符串是乱码。替换()时找不到需要替换的字符串,文件写()把文件写出了,文件没有被修改。
535544858
消息:
255
您好

 感谢您的反馈
 
 对于您所遇到的问题,首先您需要确定文件的编码类型.

 1. 如果为ANSI类型,在定义存储由文件读()返回的值的变量时。需将变量定义为ANSI字符串型,同时在方法:文件打开()中,  添加参数:文件打开.Ansi。
 
 例如:
 定义FileID为整数型变量
 定义ResRead为ANSI字符串型
 FileID=文件打开("C:\test\test.txt",文件打开.Ansi)
 如果FileID不等于-1,那么
   // Read operation in this file
   ResRead=文件读(FileID,文件大小("C:\test\test.txt"))
   文件写(FileID,替换(ResRead,"***","***"))
结束
 
 2. 如果为Unicode类型(默认), 您可以直接使用。
 
 希望以上方法能够解决您的问题
 
谢谢您的支持,期待您的反馈。

非常感谢您对WinDev简体中文版的支持与关注!
 
希望您使用WinDev开发愉快!
 
PC SOFT
 
WebDev:本论坛由PC SOFT WebDev 实现。
消息:
29
谢了
535544858
消息:
29
如果是exe的文件呢?
535544858
消息:
29
如果是exe的文件呢?
535544858
消息:
255
您好

这是一样的,只是定义ResRead为缓冲区型

希望对你有帮助

非常感谢您对WinDev简体中文版的支持与关注!
 
希望您使用WinDev开发愉快!
 
PC SOFT
 
WebDev:本论坛由PC SOFT WebDev 实现。
消息:
29
你好

根据你说的我这样写出现乱码,

定义FileID为整数型变量
 定义ResRead为缓冲区型
 FileID=文件打开("C:\windows\system32\calc.exe",文件打开.读写)  如果FileID不等于-1,那么
   // Read operation in this file
   ResRead=文件读(FileID,文件大小("C:\windows\system32\calc.exe"))
跟踪(ResRead)
跟踪返回乱码,请指教。

535544858
消息:
255
您好,

函数”文件打开“中不能为“文件打开.读写”,该文件不能写,您需要改成“文件打开.读”。

希望对您有帮助。

非常感谢您对WinDev简体中文版的支持与关注!
 
希望您使用WinDev开发愉快!
 
PC SOFT
 
WebDev:本论坛由PC SOFT WebDev 实现。
消息:
29
文件打开改为文件打开.读,效果也是一样的,跟踪显示的是乱码,

为什么不是 ASICC 或十六禁止呢,请看附件Gif图片,谢谢
附加图片
535544858
消息:
255
您好,

因为“跟踪()”只能显示字符串,显示缓冲区型就是乱码了。

希望对您有帮助。

非常感谢您对WinDev简体中文版的支持与关注!
 
希望您使用WinDev开发愉快!
 
PC SOFT
 
WebDev:本论坛由PC SOFT WebDev 实现。
    统计
    注册会员总数: 379
    论坛帖子总数: 1049