Что нового

В цикле For, скрипт пропускает число

Centurion

Новичок
Сообщения
23
Репутация
0
Код:
For $i=1 to 9 ;$params2

$Params = IniReadSection("test.ini", "spisok")
$iTotalParams = UBound($Params)

 IniWrite ("test.ini", "spisok", $iTotalParams+1 , "test")

Next

он пишет все, но пропускает 1. что не так?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Centurion
а зачем +1 в этом куске
Код:
$iTotalParams+1

?
 
Автор
C

Centurion

Новичок
Сообщения
23
Репутация
0
Код:
IniWrite ("test.ini", "spisok", $iTotalParams , "test")

то же самое!
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Centurion
ты ведь понимаешь, что $iTotalParams <> $iTotalParams + 1, правда? они не могут давать то же самое, в принципе. один больше другого на единицу.
и к слову, то, что ты создаешь таким образом, ini-файлом не является
 
Автор
C

Centurion

Новичок
Сообщения
23
Репутация
0
А можно поподробнее, а чем это является? и как правильно записать? Спасибо
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Centurion [?]
А можно поподробнее, а чем это является?
забей. я перепутал ключ и параметр. параметры не могут повторяться, а ключи могут. но касаемо всего остального, мое предложение остается в силе. если убрать +1, у меня ничего не пропустилось
 
Автор
C

Centurion

Новичок
Сообщения
23
Репутация
0
у меня он тупо пропускает 1
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Centurion,
Код:
For $i = 1 To 9
	$aParams = IniReadSection(@ScriptDir & '\test.ini', 'spisok')
	If @error Then
		$iTotalParams = 0
	Else
		$iTotalParams = $aParams[0][0]
	EndIf
	IniWrite('test.ini', 'spisok', 'param' & $iTotalParams + 1, 'test')
Next
 
Автор
C

Centurion

Новичок
Сообщения
23
Репутация
0
Спасибо madmasles - а если не секрет, почему он единицу пропускал?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Centurion,
У меня Ваш код пропускал 2. Посмотрите в справке что возвращает функция IniReadSection(). Если ключей или файла нет, то @error <> 0 и размер массива = 0 (нет массива), если один ключ, то размер уже 2 и т.д.
 
Верх