sky808 发表于 2009-11-26 13:29:48

如何在相同字段名中添加数据

请问标准ini文件中出现多个字段名该如何选择添加数据。

如:

1=xxx.exe


a=111.exe

而我想在第二字段 a=111.exe 下面添加一行数据。
请问是否有标准的处理函数,还是得通过其他办法写入呢?
多谢!

afan 发表于 2009-11-26 14:10:07

相同字段名就不标准了,既然不标准就不能按ini的方式操作了

sky808 发表于 2009-11-26 14:22:04

那就比较麻烦了.
txtsetup.sif 就存在多个相同字段名。
麻烦,微软也搞这个~~~

afan 发表于 2009-11-26 14:49:45

sif <> ini ...
要不贴出文本,大家出主意

netegg 发表于 2009-11-26 16:07:04

那就枚举字段呗,读取关键字的时候按一般文本操作

sky808 发表于 2009-11-26 17:59:52

感谢楼上的朋友出主意.
已经解决了,只是想知道有煤函数直接点而已.

netegg 发表于 2009-11-26 18:09:57

按道理应该可以,先枚举字段名,然后枚举值名,用两个while嵌套在一起用

sky808 发表于 2009-11-26 18:20:35

还是麻烦各位下吧,总感觉我那方法不对劲.

文本内容比较多,精简些贴上来。


d1,usetup.exe,system32\smss.exe
d1,ntdll.dll,system32\ntdll.dll


d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx
d1,1394.inf
d1,1394bus.sys
d1,1394vdbg.sys
……

我希望在后面字段中添加一行数据。

netegg 发表于 2009-11-26 18:25:55

本帖最后由 netegg 于 2009-11-26 18:27 编辑

还以为什么呢,想多了,想想注册表结构,就好办了
和ini是相通的
而且你这个几乎可以不用ini的函数,直接读取匹配行就行了

sky808 发表于 2009-11-26 18:59:30

能不能举个例子呢?
需要说明的是,我无法确定字段中最后一行数据.
直接读取匹配行应该不行,不知我是否理解错你的意思.

afan 发表于 2009-11-26 19:15:33

_FileReadToArray
_ArraySearch
_ArrayInsert
_ArrayToString

netegg 发表于 2009-11-26 20:05:06

本帖最后由 netegg 于 2009-11-26 20:15 编辑

追加的话直接用_arrayadd()就行了
然后在全部写回文件,都不麻烦,何必非和文本较劲
如果非要直接操作文本,把字段想成子键,关键字想成项,关键字的值想成值,就行了,一样的
再说ini文件本来就是往注册表转值用的,全名英文忘了,应该是初始化
枚举行数,_filecountlines
或者用个循环,错误处理退出
$i = 0
while 1
$i += 1
      fileread("*.ini", $i)
if @error then
   exitloop
else
      .....
endif
wend
msgbox('','',$i-1)

sky808 发表于 2009-11-26 20:46:41

多谢多谢,就是想找最小工作和最小代码量完成.

sky808 发表于 2009-11-26 20:57:46

另外我对注册表函数比较感兴趣,麻烦楼上朋友举个例子好吗
具体用什么函数可实现呢,多谢!

netegg 发表于 2009-11-26 21:01:17

回复 14# sky808

什么意思
页: [1] 2
查看完整版本: 如何在相同字段名中添加数据