Показать полную графическую версию : Подсчет записей в ИНИ файле.
Centrinar
19-08-2010, 22:06
Есть ини файл типа:
[Params]
prog1=3333
prog2=33444
Как сделать так, что бы скрипт считал общее кол-во prog т.е. например в данном примере их 2.
FlatX007
19-08-2010, 22:50
$aIniSec = IniReadSection("test.ini", "Params")
MsgBox(0, Default, UBound($aIniSec) - 1)
$aIniSec = IniReadSection("test.ini", "Params")
If Not (@error) Then MsgBox(0, Default, $aIniSec[0][0])
Centrinar
19-08-2010, 23:03
Забыл, помимо prog там есть и другие строки, но нужно подсчитать именно prog
madmasles
19-08-2010, 23:43
Centrinar,
Так попробуйте: $j = 0
$aSection = IniReadSection(@ScriptDir & '\My.ini', 'Params')
For $i = 1 To $aSection[0][0]
;If StringInStr($aSection[$i][0], 'prog', 0) Then ;или так
If StringLeft($aSection[$i][0], 4) = 'prog' Then
$j += 1
EndIf
Next
MsgBox(0, 'Test', 'Ключей с именем "prog... ": ' & $j & ' штук.')
FlatX007
19-08-2010, 23:56
#include <Array.au3>
Global $sProg = 'prog'
Dim $aProgSec[1]
$aIniSec = IniReadSection("test.ini", "Params")
If Not (@error) Then
For $i = 1 To $aIniSec[0][0]
If StringLeft($sProg, StringLen($sProg)) = StringLeft($aIniSec[$i][0], StringLen($sProg)) Then
_ArrayAdd($aProgSec, $aIniSec[$i][0] & '|' & $aIniSec[$i][1])
EndIf
Next
$aProgSec[0] = UBound($aProgSec) - 1
EndIf
_ArrayDisplay($aProgSec) ;~ ;$aProgSec[0] = "Количество найденых ключей PROGxxx"
madmasles
20-08-2010, 01:24
FlatX007,
Не проще ли вместо StringLeft($sProg, StringLen($sProg)) просто указать $sProg? :)
FlatX007
20-08-2010, 02:10
меняем prog на program_ какой нибудь и теряется универсальность я вроде как для функции сделал, просто передать значения а там она сама разберётся.
madmasles
20-08-2010, 10:24
FlatX007,
Global $sProg = 'что угодно'
If StringLeft($sProg, StringLen($sProg)) <> $sProg Then
MsgBox(0, 'madmasles', 'FlatX007, Вы были правы.')
Else
MsgBox(0, 'madmasles', 'FlatX007, Вы были не правы.')
EndIf :)
StringRegExpReplace(FileRead(@ScriptDir &'\My.ini'), "(?im)^\s*prog\d+\b", "")
ConsoleWrite("Количество найденых ключей PROGxxx: "& @extended &@CRLF)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.