Войти

Показать полную графическую версию : Подсчет записей в ИНИ файле.


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 :)

amel27
21-08-2010, 14:14
StringRegExpReplace(FileRead(@ScriptDir &'\My.ini'), "(?im)^\s*prog\d+\b", "")
ConsoleWrite("Количество найденых ключей PROGxxx: "& @extended &@CRLF)




© OSzone.net 2001-2012