Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Подсчет записей в ИНИ файле.

Ответить
Настройки темы
Подсчет записей в ИНИ файле.

Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


Есть ини файл типа:
[Params]
prog1=3333
prog2=33444

Как сделать так, что бы скрипт считал общее кол-во prog т.е. например в данном примере их 2.

Отправлено: 22:06, 19-08-2010

 

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
$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])
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:50, 19-08-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


Забыл, помимо prog там есть и другие строки, но нужно подсчитать именно prog

Отправлено: 23:03, 19-08-2010 | #3


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


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 & ' штук.')
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:43, 19-08-2010 | #4


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#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"
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:56, 19-08-2010 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


FlatX007,
Не проще ли вместо StringLeft($sProg, StringLen($sProg)) просто указать $sProg?

Отправлено: 01:24, 20-08-2010 | #6


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


меняем prog на program_ какой нибудь и теряется универсальность я вроде как для функции сделал, просто передать значения а там она сама разберётся.

Отправлено: 02:10, 20-08-2010 | #7


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


FlatX007,
Код: Выделить весь код
Global $sProg = 'что угодно'

If StringLeft($sProg, StringLen($sProg)) <> $sProg Then
    MsgBox(0, 'madmasles', 'FlatX007, Вы были правы.')
Else
    MsgBox(0, 'madmasles', 'FlatX007, Вы были не правы.')
EndIf

Последний раз редактировалось madmasles, 20-08-2010 в 12:06.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:24, 20-08-2010 | #8


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
StringRegExpReplace(FileRead(@ScriptDir &'\My.ini'), "(?im)^\s*prog\d+\b", "")
ConsoleWrite("Количество найденых ключей PROGxxx: "& @extended &@CRLF)
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:14, 21-08-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Подсчет записей в ИНИ файле.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
DNS/DHCP - Не работает почта из-за ДНС - проблема на моем сервере ини нет? __sa__nya Сетевые технологии 12 09-07-2009 15:25
VBS/WSH/JS - [решено] считывание и подсчет учетных записей Outlook Express magwolf Скриптовые языки администрирования Windows 2 27-06-2009 18:52
Подсчет в Екселе Guest Программирование и базы данных 6 10-07-2004 11:35
подсчет трафика Helium Сетевые технологии 3 19-02-2003 15:57




 
Переход