Что нового

Посчитать кол-во записей в ини

Centrinar

Новичок
Сообщения
100
Репутация
1
В ини типа:
1=<тест><архив>
2=<тест><архив>
3=<тест><архив>
4=<тест><архив>

Необходимо посчитать ко-ло <архив>.
Спасибо! :IL_AutoIt_1:
 

Fever

Скриптер
Сообщения
308
Репутация
112
тебе нужна ф-ция
Код:
IniReadSection ( "filename", "section" )

где в возвращаемом массиве
Код:
$aArray[0][0]
будет равно числу записей
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Centrinar,
Код:
#include <Array.au3>

$sIniFile = @ScriptDir & '\test.ini'
$aSection = IniReadSectionNames($sIniFile)
Dim $aData[$aSection[0] + 1][2] = [[$aSection[0]]]
For $i = 1 To $aSection[0]
	$aData[$i][0] = $aSection[$i]
	$aTemp = IniReadSection($sIniFile, $aSection[$i])
	$aData[$i][1] = $aTemp[0][0]
	$aData[0][1] += $aTemp[0][0]
Next
_ArrayDisplay($aData)
;$aData[0][0] - кол-во секций
;$aData[0][1] - общее кол-во ключей в файле
;$aData[1-n][0]- имя секции
;$aData[1-n][1]- кол-во ключей в секции
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Или через регулярные выражения:
Код:
; ИНИ-файл такого содержания:
#cs
[Section1]
1=<тест><архив>
2=<тест><архив>
3=<тест><база>
4=<тест><архив>
[Section2]
1=<тест><база>
2=<тест><архив>
3=<тест><база>
4=<тест><архив>
#ce

$sText=FileRead("Test1.Ini")
MsgBox(0,'$sText',$sText)

$sPattern = '=(.+)'
$aRezult = StringRegExp ( $sText ,$sPattern,3 )

$sPattern = '.+?=(.+<архив>)'
$aRezult1= StringRegExp ( $sText ,$sPattern,3 )

MsgBox(0,'','В ИНИ-файле найдено : ' & @CRLF & "Всего ключей : " & UBound($aRezult) & @CRLF & "Из них ключей,  содержаших : <архив> " & UBound($aRezult1))
 
Верх