Что нового

Перевод цифрового значения в числовое

OXIGEN

Новичок
Сообщения
32
Репутация
0
Здравствуйте. Задачка вроде на первый взгляд простая, но вот не могу решить.

Имееться фаил ini со зечениями внутри :

Код:
[SETTING]
Metr=9
Santimetr1=9
Santimetr2=6


Что соответствует длинне 996 сантиметров (или 9 метров 96 см)
Значения каждый раз именяются. Задача, поделить (в данном случае)
996 пополам и ввести полученые значения опять в этот-же ini на
те-же самые места. Вроде просто -

Код:
$INI = @ScriptDir & "\Example.ini"

$Metr = IniRead ($INI, "SETTING", "Metr", "") 
$Santimetr1 = IniRead ($INI, "SETTING", "Santimetr1", "") 
$Santimetr2 = IniRead ($INI, "SETTING", "Santimetr2", "")


а вот дальше, нужно "склеить" цифры в число, поделить его на 2
и опять "разбив" на цифры, записатьт его в ini.

Вот со "склейкой" и "разбивкой" у меня затык. Пробовал с записью
в txt :

Код:
$INI = @ScriptDir & "\Example.ini"
$file = FileOpen(@ScriptDir & "\1111.txt", 1)
$Metr = IniRead ($INI, "SETTING", "Metr", "")
FileWriteLine($file, $Metr)
$Santimetr1 = IniRead ($INI, "SETTING", "Santimetr1", "")
FileWriteLine($file, $Santimetr1)
$Santimetr2 = IniRead ($INI, "SETTING", "Santimetr2", "") 
FileWriteLine($file, $Santimetr2)


Не пойму как убрать перенос строки. Может проще есть решение?
 

Norm

Продвинутый
Сообщения
293
Репутация
77
Вот побыстрому, без проверок на ошибки.
Код:
Local $sString, $aINI1 = IniReadSection(@ScriptDir &"\Example.ini","SETTING")

For $nN = 1 To $aINI1[0][0]
    $sString &= $aINI1[$nN][1]
Next
Local $aINI2 = StringSplit(StringFormat("%03d", Round(Number($sString)/2)),"",1)
For $nN = 1 To $aINI1[0][0]
    $aINI1[$nN][1] = $aINI2[$nN]
Next
IniWriteSection(@ScriptDir &"\1111.txt","SETTING",$aINI1)
 
Автор
O

OXIGEN

Новичок
Сообщения
32
Репутация
0
Спасибо большое, скрипт работает!
 
Верх