【已解决】求教根据变量值写入ini
本帖最后由 anythinging 于 2024-4-27 14:35 编辑脑子实在是转不过来了,用for 加嵌套,始终弄不出来,请各位朋友指点下!
#cs ;根据变量和数值,写入ini,
如$a = 3 ,就写入3个字段,如果为0则跳过
name = A1
port = 1
name = A2
port = 2
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)
你这样写变量能循环才怪。
用一维数组
Local $a0 =
Local $a1 = ['A', 'B', 'C', 'D', 'E']
...
或二维数组,看你自己的需求 本帖最后由 邪恶海盗 于 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
没测试,不知道对不对... afan 发表于 2024-4-26 23:39
你这样写变量能循环才怪。
用一维数组
Local $a0 =
感谢回复,我这里的$a,$b,$c,$d,$e,是取自其它几个ini文件(a.ini/b.ini/c.ini/d.ini/e.ini),根据$a-$e的值 ,整理成一个新的ini。可能没表达清楚,我再研究一下。 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”,这里的关键就是需要将其整理成数组,值为多少,从何获取都不是重点,重点是其数据的写法。用几个单独的变量来赋值对于循环而言没有意义。 afan 发表于 2024-4-27 13:15
看你的描述,关键字 test1 - test10,这和你的循环需求是相关的。而循环取值最简单的方式就是使用数组。
...
感谢指点!我好象用二维数组实现了!验证成功后将代码发上来。 本帖最后由 anythinging 于 2024-4-27 14:43 编辑
感谢各位指点,已实现,要点如下:
1、关键在于必需要使用二维数组
2、单独指定字段号变量,脱离$i,之前在这个地方弄昏了头
姓名位置还没弄,应该还要用到一组for循环。
大家看看还有没有需要改进的。
Local $a = 3,$b = 2,$c = 1,$d = 0,$e = 5
Local $all = [['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] > 0 Then ;检测是否大于0,大于0则汇总
For $ii = 1 To $all[$i] Step 1
IniWrite('test.ini','test'&$zdnum,'序号',$all[$i]&$ii)
IniWrite('test.ini','test'&$zdnum,'编号',$all[$i]&1000+$ii)
IniWrite('test.ini','test'&$zdnum,'姓名','')
$zdnum += 1
next
EndIf
Next
EndFunc
代码目的是读取各个ini文件中的字段及所属内容,汇总整理成一份新的ini文件,生成序号、编号、姓名等一系列信息。 一维二维都行,如何方便如何来
Local $a0 =
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 afan 发表于 2024-4-27 16:27
一维二维都行,如何方便如何来
必需是您这个方便!一目了然!
数据结构一眼全了解了!
页:
[1]