开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 300|回复: 8
打印 上一主题 下一主题
收起左侧

[已解决] ini配置文件的写入

 关闭 [复制链接]
结帖率:100% (1/1)
跳转到指定楼层
楼主
发表于 5 天前 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式   安徽省六安市
50精币
1、这个ini文件的格式UTF8,我尝试修改了,各种转码转来转去的,还是有问题
2、要求输入配置项的名字,和修改内容直接修改,修改完成的文件编码格式和修改前的要一样
3、用np++之类的打开,要看下修改前和修改后的不可见字符是一样的,尾部的换行可以不用管

PalWorldSettings.rar

1.13 KB, 下载次数: 6

需要修改的ini文件

最佳答案

查看完整内容

不知是你想的结果,文件格式都是一致的

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (1/1)

签到天数: 3 天

沙发
发表于 5 天前 | 只看该作者   江西省南昌市
不知是你想的结果,文件格式都是一致的

QQ截图20250629230529.png (272.83 KB, 下载次数: 0)

QQ截图20250629230529.png
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 3 天

板凳
发表于 5 天前 | 只看该作者   江西省南昌市
这是修改后的数据

PalWorldSettings.zip

661 Bytes, 下载次数: 1

回复

使用道具 举报

结帖率:100% (1/1)
地板
 楼主| 发表于 5 天前 | 只看该作者   安徽省六安市
  
子程序名返回值类型公开备 注
写基础配置项  
参数名类 型参考可空数组备 注
文件名文本型
项名称文本型
修改内容文本型
变量名类 型静态数组备 注
原文本内容文本型 
新文本内容文本型 
配置项文本内容文本型 
文本长度整数型 
文本起始位置整数型 
起始位置整数型 
结束位置整数型 
文本左边文本型 
文本右边文本型 
有引号逻辑型 
新内容字节集字节集 
文件号整数型 
如果真 (是否为空 (文件名))
文件名 = _启动窗口.编辑框1.内容 + “\Pal\Saved\Config\WindowsServer\PalWorldSettings.ini”
如果真 (取反 (文件是否存在 (文件名)))
返回 ()
原文本内容 = 编码_Utf8到Ansi (读入文件 (文件名))
文本长度 = 文本_取长度 (项名称)
文本起始位置 = 文本_寻找文本 (原文本内容, 项名称, 1, )
如果真 (文本起始位置 ≠ -1)  ' 找到目标配置项了
' 先判断配置项后面的文本有没有带引号号
' 先找到配置项=后面内容的结束位置
如果 (文本_寻找文本 (原文本内容, #引号, 文本起始位置, ) = 文本起始位置 + 文本长度 + 1)
' 调试输出 (“此配置项内容有引号”)
有引号 = 真
起始位置 = 文本_寻找文本 (原文本内容, #引号, 文本起始位置 + 文本长度, )
结束位置 = 文本_寻找文本 (原文本内容, #引号, 起始位置 + 1, )
如果真 (结束位置 = -1)  ' 这是最后一个配置项,以")"结尾的
结束位置 = 文本_寻找文本 (原文本内容, “)”, 文本起始位置 + 文本长度, )

' 调试输出 (“此配置项内容无引号”)
有引号 = 假
起始位置 = 文本_寻找文本 (原文本内容, “=”, 文本起始位置 + 文本长度, )
结束位置 = 文本_寻找文本 (原文本内容, “,”, 文本起始位置 + 文本长度, )
如果真 (结束位置 = -1)  ' 这是最后一个配置项,以")"结尾的
结束位置 = 文本_寻找文本 (原文本内容, “)”, 文本起始位置 + 文本长度, )

配置项文本内容 = 取文本中间 (原文本内容, 起始位置 + 1, 结束位置 - 起始位置 - 1)

文本左边 = 文本_删中间 (原文本内容, 文本起始位置 + 文本长度, 取文本长度 (原文本内容) - 文本起始位置 - 文本长度)
如果 (有引号)
文本右边 = 文本_删中间 (原文本内容, 1, 文本起始位置 + 文本长度 + 2 + 取文本长度 (配置项文本内容))
文本右边 = 文本_删中间 (原文本内容, 1, 文本起始位置 + 文本长度 + 取文本长度 (配置项文本内容))
' 调试输出 (“配置项内容:” + 配置项文本内容)
如果 (有引号)
新文本内容 = 文本左边 + “=”#引号 + 修改内容 + #引号 + 文本右边
新文本内容 = 文本左边 + “=” + 修改内容 + 文本右边
' 调试输出 (新文本内容)
新内容字节集 = 编码_Ansi到Utf8 (新文本内容)
文件号 = 打开文件 (_启动窗口.编辑框1.内容 + “\Pal\Saved\Config\WindowsServer\PalWorldSettings.ini”, #重写, )
如果真 (文件号 ≠ 0)
文件_写出字节集 (文件号, 新内容字节集, 1)
关闭文件 (文件号)
程序_延时 (10, )
处理事件 ()

VX图片_20250629231924.png (309.29 KB, 下载次数: 0)

VX图片_20250629231924.png
回复

使用道具 举报

结帖率:100% (1/1)
地下
 楼主| 发表于 5 天前 | 只看该作者   安徽省六安市

不是这个意思,我重新发了详细的内容,您看下,主要是修改里面的“配置项”,我的想法是读入原文本(UTF8编码的),然后转为易语言的Ansi编码,把文本分成2半,中间夹着需要修改的内容,最后再拼接回去,再一起存回原来的文本,但是不知道为什么,存回去之后“=”后面就会多一个不可见的“LF”换行符,我想要存回去之后,和原来的一样“=”后面没有换行符
回复

使用道具 举报

结帖率:100% (1/1)
6
 楼主| 发表于 5 天前 | 只看该作者   安徽省六安市
不能直接用写配置项()把文本内容直接写回去,如果直接用这个,那修改的内容如果包含中文,ini文件就会出现乱码显示了
回复

使用道具 举报

结帖率:100% (23/23)

签到天数: 2 天

7
发表于 4 天前 | 只看该作者   福建省泉州市
hongqingfeng 发表于 2025-6-29 23:07
不知是你想的结果,文件格式都是一致的

每个子程序区分的这个虚线是哪个插件?
回复

使用道具 举报

签到天数: 3 天

8
发表于 4 天前 | 只看该作者   辽宁省辽阳市
你不想要LF,最笨的方法,就把这段内容中的LF替换掉不就可以了么
回复

使用道具 举报

结帖率:100% (1/1)
9
 楼主| 发表于 4 天前 | 只看该作者   安徽省六安市
辽阳小哲 发表于 2025-6-30 08:17
你不想要LF,最笨的方法,就把这段内容中的LF替换掉不就可以了么

不知道咋替换,已经用别的方法了,不写入中文就行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表