Что нового

Можно ли назначить одну переменную нескольким файлам

A

at

Гость
Добрый день,Сообщество. Вопрос такого плана.

К примеру имеем в разных каталогах файл server.txt.

C:\server.txt
C:\srv\server.txt
C:\Program Files\server.txt
C:\Documents and Settings\USER\Local Settings\Application Data\srv\server.txt

Можно ли назначить этим файлам одну переменную?
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Можно их поставить в массив:
Код:
Dim $Array[4] = ['C:\server.txt', 'C:\srv\server.txt', 'C:\Program Files\server.txt', 'C:\Documents and Settings\USER\Local Settings\Application Data\srv\server.txt']


$Array[0] - C:\server.txt
$Array[1] - C:\srv\server.txt
$Array[2] - C:\Program Files\server.txt
$Array[3] - C:\Documents and Settings\USER\Local Settings\Application Data\srv\server.txt
 
Автор
A

at

Гость
А если файлы разбросаны по диску и пути их первоначально не известны, так же, как и их число. К примеру я нахожу их при пощи скрипта:

Код:
#Include <File.au3>

;$Drive = DriveGetDrive('ALL')
;If IsArray($Drive) Then
;    For $i = 1 To $Drive[0]
;        _FindFiles($Drive[$i], '*.txt')
;    Next
;EndIf

_FindFiles('C:', '*.txt')

Func _FindFiles($sRoot, $sFile)

    Local $FileList

    $FileList = _FileListToArray($sRoot, $sFile, 1)
    If Not @error Then
        For $i = 1 To $FileList[0]
            ConsoleWrite($sRoot & '\' & $FileList[$i] & @CR)
        Next
    EndIf
    $FileList = _FileListToArray($sRoot, '*', 2)
    If Not @error Then
        For $i = 1 To $FileList[0]
            _FindFiles($sRoot & '\' & $FileList[$i], $sFile)
        Next
    EndIf
EndFunc   ;==>_FindFiles
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
#Include <File.au3>
#Include <Array.au3> ;Добавлено

Dim $Array[1] ;Добавлено

_FindFiles('C:', '*.txt')
_ArrayDisplay($Array) ;Добавлено

Func _FindFiles($sRoot, $sFile)

    Local $FileList

    $FileList = _FileListToArray($sRoot, $sFile, 1)
    If Not @error Then
        For $i = 1 To $FileList[0]
            ConsoleWrite($sRoot & '\' & $FileList[$i] & @CR)
			_ArrayAdd($Array, $sRoot & '\' & $FileList[$i]) ;Добавлено
        Next
    EndIf
    $FileList = _FileListToArray($sRoot, '*', 2)
    If Not @error Then
        For $i = 1 To $FileList[0]
            _FindFiles($sRoot & '\' & $FileList[$i], $sFile)
        Next
    EndIf
EndFunc   ;==>_FindFiles
 
Верх