suntech 发表于 2011-10-19 21:42:10

oeminfo.ini 新添尾行问题

本帖最后由 suntech 于 2011-10-20 15:26 编辑

主要是要获取 C:\WINDOWS\system32\oeminfo.ini提取下最后的Line的编号
Line是不固定的,可能10或20或其他数字。

这段内容格式如下:
Line1=本系统仅用于研究与测试Windows系统安装盘结构和安装技术。
Line2=
Line3=专业的技术,虔诚为您服务!
Line4=----------------------------------------
Line5=
Line6=官方网站
Line7=----------------------------------------
Line8=
Line9=
Line.....不确定行数,但都是前行 +1下来的

要实现最有效的方法读取 C:\WINDOWS\system32\oeminfo.ini并获取最后的Line 编号(例如 BH=15),新添加一个比编号多一的行(如 Line16)

afan 发表于 2011-10-19 22:20:37

Local $Str = _
                'Line1=' & @CRLF & _
                '...' & @CRLF & _
                'Line14=' & @CRLF & _
                'Line15=' & @CRLF
Local $Test = StringRegExp($str, '(\d+)=', 3)
If Not @Error Then MsgBox(0, '最后数字', $Test)

autt 发表于 2011-10-19 22:24:36


#include <file.au3>
$lines=_FileContLines("file path")
MsgBox("","total lines"&$lines,$lines+1)


do not just copy

suntech 发表于 2011-10-19 22:41:13

主要是要获取 C:\WINDOWS\system32\oeminfo.ini提取下最后的Line的编号
Line是不固定的,可能10或20或其他数字

gzh888666 发表于 2011-10-19 23:00:18

本帖最后由 gzh888666 于 2011-10-20 00:05 编辑

主要是要获取 C:\WINDOWS\system32\oeminfo.ini提取下最后的Line的编号
Line是不固 ...
suntech 发表于 2011-10-19 22:41 http://www.autoitx.com/images/common/back.gif
### 友情提示:本脚本由 Au3.REHelper 于 2011/10/19 23:18 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $Str = _
                'Line1=本系统仅用于研究与测试Windows系统安装盘结构和安装技术。' & @CRLF & _
                'Line2=' & @CRLF & _
                'Line3=专业的技术,虔诚为您服务!' & @CRLF & _
                'Line4=----------------------------------------' & @CRLF & _
                'Line5=' & @CRLF & _
                'Line6=官方网站' & @CRLF & _
                'Line7=----------------------------------------' & @CRLF & _
                'Line8=' & @CRLF & _
                'Line9=' & @CRLF & _
                'Line10='
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '(?s)(?i)line(\d+?)=.*$', 1)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($Test), '其中元素为: ' & $Test)

lixiaolong 发表于 2011-10-19 23:38:45

本帖最后由 lixiaolong 于 2011-10-19 23:40 编辑

回复 4# suntech Local $Str = _
                '' & @CRLF & _
                'Manufacturer=fee' & @CRLF & _
                'Model=eef' & @CRLF & @CRLF & _
                '' & @CRLF & _
                'Line1=' & @CRLF & _
                'Line2=aaaa' & @CRLF & _
                'Line3=bbbb' & @CRLF & _
                'Line4=' & @CRLF & _
                'Line5=' & @CRLF & _
                'Line55=' & @CRLF & _
                'Line33='
MsgBox(0, '', $Str)
Local $Test = StringRegExp($str, '(?s)(?i)\.+(line\d*)=.*$', 3)
If Not @Error Then MsgBox(0, 'Line',$Test)
Local $Test = StringRegExp($str, '(?s)(?i)\.+line(\d*)=.*$', 3)
If Not @Error Then MsgBox(0, 'Line',$Test)

netegg 发表于 2011-10-20 06:45:05

fileopen('oeminfo.ini', 1)?

suntech 发表于 2011-10-20 15:29:33

回复 7# netegg


Fileopen 是最后做的事,现在要做的就是获取最后的Line的编号BH,Fileopen加入编号+1的Line(BH+1)的一行

netegg 发表于 2011-10-20 15:42:17

回复 8# suntech
参数1就是接着写啊,管你原来有多少行

afan 发表于 2011-10-20 15:46:50

早贴出比较完整的ini文件可能大家早就帮你解决了。
几个人都贴出了代码,LZ应该积极测试及反馈,那样也早就解决了。

suntech 发表于 2011-10-20 15:51:45

回复 9# netegg


    但Line的编号一定是前一行加1   如果跳行了在我的电脑属性里头是不会显示的

suntech 发表于 2011-10-20 15:57:37

回复 10# afan


    大佬好,主要是要获取 C:\WINDOWS\system32\oeminfo.ini提取下最后的Line的编号,不是Array 固定的内容。

afan 发表于 2011-10-20 16:00:09

回复 12# suntech


    我这根本没这字段。
你应该截取部分可以用来测试的

afan 发表于 2011-10-20 16:02:12

且要说明是否还有别的字段含有Line*关键字

suntech 发表于 2011-10-20 16:12:55

回复 14# afan



这是一个例子,Line 可能10或20或更多,也就是要获取到最后LineX 的编号。
页: [1] 2
查看完整版本: oeminfo.ini 新添尾行问题