找回密码
 加入
搜索
查看: 148|回复: 9

[AU3基础] 【已解决】求教根据变量值写入ini

[复制链接]
发表于 2024-4-26 23:06:52 | 显示全部楼层 |阅读模式
本帖最后由 anythinging 于 2024-4-27 14:35 编辑

脑子实在是转不过来了,用for 加嵌套,始终弄不出来,请各位朋友指点下!

#cs        ;根据变量和数值,写入ini,
        如$a = 3 ,就写入3个字段,如果为0则跳过

        [test1]
                name = A1
                port = 1
        [test2]
                name = A2
                port = 2
        [test3]
                name = A3
                port = 3

#ce

;傻瓜写法
        Local $a = 3,$b = 2,$c = 1,$d = 0,$e = 4
        IniWrite('test.ini','test1','name','A1')
        IniWrite('test.ini','test1','pw',1)
        IniWrite('test.ini','test2','name','A2')
        IniWrite('test.ini','test2','pw',2)
        IniWrite('test.ini','test3','name','A3')
        IniWrite('test.ini','test3','pw',3)
        IniWrite('test.ini','test4','name','B1')
        IniWrite('test.ini','test4','pw',4)
        IniWrite('test.ini','test5','name','B2')
        IniWrite('test.ini','test5','pw',5)
        IniWrite('test.ini','test6','name','C1')
        IniWrite('test.ini','test6','pw',6)
        IniWrite('test.ini','test7','name','E1')
        IniWrite('test.ini','test7','pw',7)
        IniWrite('test.ini','test8','name','E2')
        IniWrite('test.ini','test8','pw',8)
        IniWrite('test.ini','test9','name','E3')
        IniWrite('test.ini','test9','pw',9)
        IniWrite('test.ini','test10','name','E4')
        IniWrite('test.ini','test10','pw',10)
发表于 2024-4-26 23:39:25 | 显示全部楼层
你这样写变量能循环才怪。
用一维数组
Local $a0 = [3, 2, 1, 0, 4]
Local $a1 = ['A', 'B', 'C', 'D', 'E']
...
或二维数组,看你自己的需求
发表于 2024-4-26 23:54:20 | 显示全部楼层
本帖最后由 邪恶海盗 于 2024-4-26 23:56 编辑
for $x=1 to 3
for $y=1 to 4
        IniWriteSection ('test.ini','test' & $x,'name=A' & $y & @LF & 'pw=' & $y)
next
next
没测试,不知道对不对...
 楼主| 发表于 2024-4-27 12:40:04 | 显示全部楼层
afan 发表于 2024-4-26 23:39
你这样写变量能循环才怪。
用一维数组
Local $a0 = [3, 2, 1, 0, 4]

感谢回复,我这里的$a,$b,$c,$d,$e,是取自其它几个ini文件(a.ini/b.ini/c.ini/d.ini/e.ini),根据$a-$e的值 ,整理成一个新的ini。可能没表达清楚,我再研究一下。
发表于 2024-4-27 13:15:05 | 显示全部楼层
anythinging 发表于 2024-4-27 12:40
感谢回复,我这里的$a,$b,$c,$d,$e,是取自其它几个ini文件(a.ini/b.ini/c.ini/d.ini/e.ini),根据$a-$e ...

看你的描述,关键字 test1 - test10,这和你的循环需求是相关的。而循环取值最简单的方式就是使用数组。
“根据$a-$e的值 ,整理成一个新的ini”,这里的关键就是需要将其整理成数组,值为多少,从何获取都不是重点,重点是其数据的写法。用几个单独的变量来赋值对于循环而言没有意义。
 楼主| 发表于 2024-4-27 13:40:22 | 显示全部楼层
afan 发表于 2024-4-27 13:15
看你的描述,关键字 test1 - test10,这和你的循环需求是相关的。而循环取值最简单的方式就是使用数组。
...

感谢指点!我好象用二维数组实现了!验证成功后将代码发上来。
 楼主| 发表于 2024-4-27 14:32:25 | 显示全部楼层
本帖最后由 anythinging 于 2024-4-27 14:43 编辑

感谢各位指点,已实现,要点如下:
1、关键在于必需要使用二维数组
2、单独指定字段号变量,脱离$i,之前在这个地方弄昏了头

姓名位置还没弄,应该还要用到一组for循环。
大家看看还有没有需要改进的。

        Local $a = 3,$b = 2,$c = 1,$d = 0,$e = 5
        Local $all[5][2] = [['A',$a],['B',$b],['C',$c],['D',$d],['E',$e]]
        Local $zdnum = 1        ;字段序号
Func _ok1()
        $x = UBound($all)
        For $i = 0 To $x - 1 Step 1
                        If $all[$i][1] > 0 Then        ;检测是否大于0,大于0则汇总
                                For $ii = 1 To $all[$i][1] Step 1
                                        IniWrite('test.ini','test'&$zdnum,'序号',$all[$i][0]&$ii)
                                        IniWrite('test.ini','test'&$zdnum,'编号',$all[$i][0]&1000+$ii)
                                        IniWrite('test.ini','test'&$zdnum,'姓名','')

                                        $zdnum += 1
                                next
                        EndIf
        Next
EndFunc


评分

参与人数 1金钱 +10 收起 理由
holley + 10 赞一个!

查看全部评分

 楼主| 发表于 2024-4-27 14:37:12 | 显示全部楼层
代码目的是读取各个ini文件中的字段及所属内容,汇总整理成一份新的ini文件,生成序号、编号、姓名等一系列信息。
发表于 2024-4-27 16:27:01 | 显示全部楼层
一维二维都行,如何方便如何来
Local $a0 = [3, 2, 1, 0, 4]
Local $a1 = ['A', 'B', 'C', 'D', 'E']
Local $iX = 0
For $ii = 0 To UBound($a0) - 1
        For $ij = 0 To $a0[$ii] - 1
                IniWriteSection('test.ini', 'test' & $iX + 1, '        name=' & $a1[$ii] & $ij + 1 & @LF & '        pw=' & $iX + 1)
                $iX += 1
        Next
Next

评分

参与人数 1金钱 +10 收起 理由
holley + 10 很给力!

查看全部评分

 楼主| 发表于 2024-4-27 19:28:30 | 显示全部楼层
afan 发表于 2024-4-27 16:27
一维二维都行,如何方便如何来

必需是您这个方便!一目了然!
数据结构一眼全了解了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-8 04:29 , Processed in 0.083102 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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