Что нового

Чтение файла по расширению

Zoldan

Новичок
Сообщения
8
Репутация
0
Всем доброго времени суток
Имеется следующий скрипт, как правильнее написать чтоб открытие и чтение файла ini было по расширению?, и возможно ли сделать массовое чтение по расширению, тоесть имеется с десяток ini файлов скрипт должен считать из всех секцию Section1 по расширению, далее суммировать все.

Код:
$sFile = @ScriptDir & '\' & 'Config.ini'
$sSection1 = 'Section1'
$aSection2 = IniReadSection($sFile, $sSection1)
$var1 = IniRead($sFile, "Section1", "Patch1", "~")
$var2 = IniRead($sFile, "Section1", "Patch2", "~")
$var3 = IniRead($sFile, "Section1", "Patch3", "~")
$var4 = IniRead($sFile, "Section1", "Patch4", "~")
;------------------------------------------------------------------
;Что то вроде этого
$sFile = @ScriptDir & '\' & '*.ini'
$sSection1 = 'Section1'
$aSection2 = IniReadSection($sFile, $sSection1)
$var1 = IniRead($sFile, "Section1", "Patch1", "~")
$var2 = IniRead($sFile, "Section1", "Patch2", "~")
$var3 = IniRead($sFile, "Section1", "Patch3", "~")
$var4 = IniRead($sFile, "Section1", "Patch4", "~")
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,580
Репутация
335
Названия файлов ini какие?
Если 1.ini 2.ini 3.ini то все давольно просто. Можно будет забить в цикл For..Next
 

madmasles

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

Dim $aKeys[6][2] = [[5]]
$sSection = 'Section1'
For $i = 1 To 15
	$sName = ''
	For $j = 1 To $aKeys[0][0]
		$aKeys[$j][0] = 'Patch' & Random(1, 999, 1)
		$aKeys[$j][1] = Random(100, 999, 1)
	Next
	For $q = 1 To 5
		$sName &= Chr(Random(97, 122))
	Next
	IniWriteSection(@ScriptDir & '\' & $sName & '.ini', $sSection, $aKeys)
Next

$aFileIni = _FileListToArray(@ScriptDir, '*.ini', 1)
If @error Then
	MsgBox(16, 'Error', 'Error')
	Exit
EndIf
Dim $aResult[1][3] = [[0, '', 'файлов: ' & $aFileIni[0]]]
For $i = 1 To $aFileIni[0]
	$aTemp = IniReadSection(@ScriptDir & '\' & $aFileIni[$i], $sSection)
	If Not @error Then
		ReDim $aResult[$aResult[0][0] + $aTemp[0][0] + 1][3]
		$aResult[$aResult[0][0] + 1][2] = $aFileIni[$i]
		For $j = 1 To $aTemp[0][0]
			$aResult[$aResult[0][0] + $j][0] = $aTemp[$j][0]
			$aResult[$aResult[0][0] + $j][1] = $aTemp[$j][1]
		Next
		$aResult[0][0] += $aTemp[0][0]
	EndIf
Next
_ArrayDisplay($aResult)
 
Автор
Z

Zoldan

Новичок
Сообщения
8
Репутация
0
Всем спасибо за ответы, тема решена
 
Верх