Что нового

Как узнать номер элемента на котором остановился счетчик

Pat4005

Новичок
Сообщения
85
Репутация
4
Подскажите пожалуйста люди добрые как? Я пытаюсь вычислить но получаю почему-то номер первого даже при выходе из цикла.
Код:
$Dialog=InputBox("Создание отчета","Введите дату отсчета в формате ГГММДД" &Chr(10)& @TAB&"     для создания отчета")
$bound=(UBound($Files,1)-1)
For $i=1 to $bound
	$date=StringMid($Files[$i],9,6)
	If $Dialog=$date Then
		MsgBox(0,"!!!",'$bound')
		Exitloop
	Else
		MsgBox(0,'',$Files[$i])
		ExitLoop
	EndIf
Next
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Pat4005
номер в заголовке
Код:
MsgBox(0,$i,$Files[$i])


Код:
Chr(10) ; это @LF
 
Автор
P

Pat4005

Новичок
Сообщения
85
Репутация
4
AZJIO, Очень странно - пишет:
Код:
$i=1
. Может я неправильно составил цикл. Он у меня считает от 1 до цифры кол-ва эл-тов в массиве. Потом он должен поочередно сравнивать введенную дату с вырезанной из имени файла(массив состоит из имен файлов), тем самым перебирая эти имена(кстати, цикл вообще с начала или с конца начинает считать). но выдает все равно единицу как будто и не начинал. Я чувствую что упустил, но что??
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Pat4005
Если вы хотите получить реальную помощь, то представьте подробную информацию.
1. как выглядят имена ваших файлов
2. что вы в результате хотите получить
3. и что конкретно у вас не получается
 
Автор
P

Pat4005

Новичок
Сообщения
85
Репутация
4
Garrett Значит так:
Есть много таких файлов(около 150-ти и это число будет варьироваться по мере использования скрипта на разных компьютерах, так как это файлы статистики и они везде разные):
Z_64374_111028.01
Z_64374_111029.01
Z_64374_111030.01
Z_64374_111031.01
Z_64374_111101.01
Мне нужно из них выбрать произвольную часть, которую должен указать пользователь. Т. е. отрезок времени, за который были созданы эти файлы. Например: от 28 ноября 2011(111028) до 1-го ноября 2011года(111101). Надо этот отрезок времени из имен файлов вывести в массив. Вот что уже есть, бОльшая часть не моя, наверное, много лишнего но не стал убирать ибо - работает.
Код:
#Include <File.au3>
#Include <Array.au3>
;Демонстрация
$dirExist=DirGetSize("C:\kontur\stat\")
If $dirExist=-1 then
$newPath=InputBox("Неверный путь",'Введите новый путь к папке статистики(stat)')
$Demonstration = Struct_Reader($newPath)
Struct_Finder($Demonstration)
Else
$Demonstration = Struct_Reader('C:\kontur\stat\')
Struct_Finder($Demonstration) ; Вторым параметром этой функции можно задать конкретный каталог
;
EndIf

Func Struct_Reader($TagertDir = @ScriptDir, $OldDir = "") 
Dim $Marker
Dim $FirstStep = 1
Global $date


If StringRight($TagertDir, 1) <> "\" Then $TagertDir = $TagertDir & "\"
    
If $OldDir <> "" Then $TagertDir = $OldDir & $TagertDir
    
$Dirs=_FileListToArray($TagertDir, "*", 2) ; Определяем вложенные каталоги
    If (not IsArray($Dirs)) Then ; Если вложенных каталогов нет, объявляем пустой массив $Dirs
        Dim $Dirs[1]
        $Marker = "D"
    EndIf

;; МОЙ КУСОЧЕК СЦЕНАРИЯ
$Files=_FileListToArray($TagertDir, "Z*", 1) ; Определяем вложенные файлы
$Dialog=InputBox("Создание отчета","Введите дату отсчета в формате ГГММДД" &Chr(10)& @TAB&"     для создания отчета")
$bound=UBound($Files,1)
For $i=2 to $bound
	$date=StringMid($Files[$i],9,6)
	If $Dialog=$date Then
		MsgBox(0,$i,$Files[$i])
	Else
		MsgBox(0,'',$bound)
		ExitLoop
	EndIf
Next

    If (not IsArray($Files)) Then ; Если вложенных файлов нет, объявляем пустой массив $Files
        Dim $Files[1]
        $Marker = "F"
    EndIf
                
If Ubound($Dirs) + Ubound($Files) > 0 Then ; Подводим итоги предшествующих проверок, - стуктурируем массив
    Dim $Structure[$Dirs[0] + $Files[0] + 1][2]
    $Structure[0][0] = $TagertDir ; Сохраняем путь к опрошенному каталогу. 
    ; Msgbox(0,"", $Structure[0][0])
        If $Marker = "D" Then $Structure[0][1] = "no_dirs"  ; Если в дирректории необнаруженно либо файлов либо каталогов 
        If $Marker = "F" Then $Structure[0][1] = "no_files" ; Оставляем "маркер" мне нужно было для отладки, хотя наверное можно найти и практическое прменение :)
            
        If $Marker <> "D" Then ; Если подиректории есть то опишем их, и отметим как "dir" для избиратеольной рекурсии
            For $i = 1 to UBound($Dirs) - 1 
                    $Structure[$i][0] = $Dirs[$i]
                    $Structure[$i][1] = "dir"
            Next
        Else
            $i = 1  
        EndIf 
        
        If $Marker <> "F" Then ; Если есть вложенные файлы - добавляем их к концу масиива, отмечаем как "File"
                               ; Это мой личный "бзык" так папки будут вверху файлы внизу//
            For $z = $i to $i + $Files[0] - 1 
                    $Structure[$z][0] = $Files[$z - $i + 1]
                    $Structure[$z][1] = "file" 
            Next    
        Endif
EndIf

For $i = 1 to Ubound($Structure) - 1    ; Собственно рекурсия функции
    If $Structure[$i][1] = "dir" Then 
        $FirstStep = 0
        MSGbox(0, "", "$TagertDir = " & $Structure[$i][0] & " $OldDir = " & $Structure[0][0])
        $Structure[$i][1] = Struct_Reader($Structure[$i][0], $Structure[0][0]) 
    EndIf
Next

Return $Structure

EndFunc

Func Struct_Finder ($TagertArray, $TagertDir = "")

If $TagertDir = "" Then $TagertDir = $TagertArray[0][0]

If StringRight($TagertDir, 1) = "\" Then $TagertDir = StringTrimRight($TagertDir, 1)
If StringRight($TagertArray[0][0], 1) = "\" Then $TagertArray[0][0] = StringTrimRight($TagertArray[0][0], 1)

; Msgbox(0, "", "$TagertArray = " & $TagertArray[0][0] & " | $TagertDir = " & $TagertDir)

; Msgbox(0, "", $TagertArray[0][0] = $TagertDir)

If $TagertArray[0][0] <> $TagertDir Then
        For $i = 1 to UBound($TagertArray)-1
        If IsArray($TagertArray[$i][1]) Then Struct_Finder($TagertArray[$i][1], $TagertDir)
        Next
Else
    $Result = $TagertArray
EndIf
_ArrayDisplay($Result, "Result")
EndFunc

Не получается при запуске найти хотя бы тот элемент массива, на котором останавливается сравнение фрагмента имени искомого файла в цикле.
P.S. Скорее всего массив с нужным мне 'отрезком' получить намного легче, но голова упорно не хочет думать в нужном напрвлении уже несколько часов, а завтра с утра надо уже иметь готовый сценарий, чтобы доказать кое-кому что AUTOIT достоин внимания и уважения :IL_AutoIt_1:, а ещё я просто пообещал помочь :smile:..
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Pat4005 [?]
Мне нужно из них выбрать произвольную часть, которую должен указать пользователь. Т. е. отрезок времени, за который были созданы эти файлы.

Так?
Код:
$sDate = InputBox("Создание отчета","Введите дату отсчета в формате ГГММДД" &Chr(10)& @TAB&"     для создания отчета")

$sSearch = FileFindFirstFile("C:\kontur\stat\*.*")
If $sSearch = -1 Then
    MsgBox(0, "Error", "No found files")
    Exit
EndIf

While 1
    $hFile = FileFindNextFile($sSearch)
    If @error Then ExitLoop
	If StringInStr($hFile, $sDate) Then MsgBox(4096, "Файл найден", $hFile)
WEnd

FileClose($sSearch)
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Код:
#include <File.au3>
#include <Array.au3>

Dim $Array = _ArrayCreate(0)

Global $StartData = 111028
Global $EndData = 111031

$sFiles = _FileListToArray(@ScriptDir & '\kontur')
For $i = 0 To UBound($sFiles) -1
	$sFormat = StringRegExpReplace($sFiles[$i], '(?s)Z_(.*)_(.*).01', '$2')
	If $sFormat >= $StartData And $sFormat <= $EndData Then
		_ArrayAdd($Array, $sFiles[$i])
	EndIf	
Next
_ArrayDisplay($Array)
 
Автор
P

Pat4005

Новичок
Сообщения
85
Репутация
4
Viktor1703, не могли бы вы мне объяснить своими словами что конкретно значит каждый символ в
Код:
'(?s)Z_(.*)_(.*).01'
. По справке синтаксиса регулярных выражений не могу дорубить как произошел поиск.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
(?s) - это лишнее, это он по привычке ставит для случая типа
"Z_
64374_
111028.01"

Z_ - строка начинается с символов 'Z_'

(.*) - далее идёт любой символ '.' и этих любых символов может быть сколько угодно '*'

_ - далее идёт символ '_'

(.*) - далее снова идёт любой символ '.' и этих любых символов может быть сколько угодно '*'

.01 - и заканчивается строка символами '.01'
 
Автор
P

Pat4005

Новичок
Сообщения
85
Репутация
4
Ну вот почти и все. Последний штрих ;) Осталось научить скрипт считать всё в двумерный массив(должны сложиться все массивы $zona, которые изменяются(подсчитываются) в цикле с помощью _2DArray). Вот все что есть у меня:
Код:
#Include <File.au3>
#Include <Array.au3>

Dim $aRecords
Const $zoneAmount=8
Const $ticketType=4
Const $ZstringNumPar=17
Global $array[$ZstringNumPar]
Global $ZONA[$ticketType][$zoneAmount]
Global $Zona2[$ticketType][$zoneAmount]
Global $Zona3[$ticketType][$zoneAmount]

Global $path='C:\kontur\stat\'
$dirExist=DirGetSize("C:\kontur\stat\")
If $dirExist=-1 then
$newPath=InputBox("Неверный путь",'Введите новый путь к папке статистики(stat)')
$filesarray=_IntervalChoice($newPath)
Else
$filesarray=_IntervalChoice($path)
Endif

_ArrayDisplay($filesarray)
For $i=1 to UBound($filesarray)
If Not _FileReadToArray('C:\kontur\stat\'& $filesarray[$i],$aRecords) Then
   MsgBox(4096,"Ошибка", " Ошибка чтения файла в массив. @error=" & @error)
   Exit
EndIf
For $i = 1 to $aRecords[0]
    $string = StringSplit($aRecords[$i],",") ; Присваиваем массиву всю строку
	;; ЗОНА 0
    If $string[17]=0 and $string[17]<8 and  $string[6]<9999 and $string[10]=3 and $string[11]=0 Then  $ZONA[0][0] += 1; f
	If $string[17]=0 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=1 Then  $ZONA[1][0] += 1; k
	If $string[17]=0 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=2 Then  $ZONA[2][0] += 1; L(M)
	If $string[17]=0 and $string[17]<8 and  $string[6]<9999 and  $string[10]=4 and $string[11]=0 Then  $ZONA[3][0] += 1; СЛУЖЕБНЫЕ(PID)
	;; ЗОНА 0
	;; ЗОНА 1
    If $string[17]=1 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=0 Then  $ZONA[0][1] += 1; f
	If $string[17]=1 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=1 Then  $ZONA[1][1] += 1; k
	If $string[17]=1 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=2 Then  $ZONA[2][1] += 1; L(M)
	If $string[17]=1 and $string[17]<8 and  $string[6]<9999 and  $string[10]=4 and $string[11]=0 Then  $ZONA[3][1] += 1; СЛУЖЕБНЫЕ(PID)
	;; ЗОНА 1
	;; ЗОНА 2
    If $string[17]=2 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=0 Then  $ZONA[0][2] += 1; f
	If $string[17]=2 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=1 Then  $ZONA[1][2] += 1; k
	If $string[17]=2 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=2 Then  $ZONA[2][2] += 1; L(M)
	If $string[17]=2 and $string[17]<8 and  $string[6]<9999 and  $string[10]=4 and $string[11]=0 Then  $ZONA[3][2] += 1; СЛУЖЕБНЫЕ(PID)
	;; ЗОНА 2
	;; ЗОНА 3
    If $string[17]=3 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=0 Then  $ZONA[0][3] += 1; f
	If $string[17]=3 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=1 Then  $ZONA[1][3] += 1; k
	If $string[17]=3 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=2 Then  $ZONA[2][3] += 1; L(M)
	If $string[17]=3 and $string[17]<8 and  $string[6]<9999 and  $string[10]=4 and $string[11]=0 Then  $ZONA[3][3] += 1; СЛУЖЕБНЫЕ(PID)
	;; ЗОНА 3
	;; ЗОНА 4
    If $string[17]=4 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=0 Then  $ZONA[0][4] += 1; f
	If $string[17]=4 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=1 Then  $ZONA[1][4] += 1; k
	If $string[17]=4 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=2 Then  $ZONA[2][4] += 1; L(M)
	If $string[17]=4 and $string[17]<8 and  $string[6]<9999 and  $string[10]=4 and $string[11]=0 Then  $ZONA[3][4] += 1; СЛУЖЕБНЫЕ(PID)
	;; ЗОНА 4
	;; ЗОНА 5
    If $string[17]=5 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=0 Then  $ZONA[0][5] += 1; f
	If $string[17]=5 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=1 Then  $ZONA[1][5] += 1; k
	If $string[17]=5 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=2 Then  $ZONA[2][5] += 1; L(M)
	If $string[17]=5 and $string[17]<8 and  $string[6]<9999 and  $string[10]=4 and $string[11]=0 Then  $ZONA[3][5] += 1; СЛУЖЕБНЫЕ(PID)
	;; ЗОНА 5
	;; ЗОНА 6
    If $string[17]=6 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=0 Then  $ZONA[0][6] += 1; f
	If $string[17]=6 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=1 Then  $ZONA[1][6] += 1; k
	If $string[17]=6 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=2 Then  $ZONA[2][6] += 1; L(M)
	If $string[17]=6 and $string[17]<8 and  $string[6]<9999 and  $string[10]=4 and $string[11]=0 Then  $ZONA[3][6] += 1; СЛУЖЕБНЫЕ(PID)
	;; ЗОНА 6
	;; ЗОНА 7
    If $string[17]=7 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=0 Then  $ZONA[0][7] += 1; f
	If $string[17]=7 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=1 Then  $ZONA[1][7] += 1; k
	If $string[17]=7 and $string[17]<8 and  $string[6]<9999 and  $string[10]=3 and $string[11]=2 Then  $ZONA[2][7] += 1; L(M)
	If $string[17]=7 and $string[17]<8 and  $string[6]<9999 and  $string[10]=4 and $string[11]=0 Then  $ZONA[3][7] += 1; СЛУЖЕБНЫЕ(PID)
	;; ЗОНА 7
Next
$zona($i)=$zona
_2DArrayAdd($zona, $zona)
Next
_ArrayDisplay($zona)


Func _IntervalChoice($path='C:\kontur\stat\')
Dim $ChoosenFiles = _ArrayCreate(0)
$StartData=InputBox("Создание отчета",@LF&@LF&@LF&"Введите дату начала отсчета в формате ГГММДД" &@LF& @TAB&"     для создания отчета",'','',300,250)
$EndData=InputBox("Создание отчета",@LF&@LF&@LF&"Введите дату конца отсчета в формате ГГММДД" &Chr(10)& @TAB&"     для создания отчета",'','',300,250)
Global $StartData
Global $EndData

$sFiles = _FileListToArray($path)
For $i = 0 To UBound($sFiles) -1
    $sFormat = StringRegExpReplace($sFiles[$i], 'Z_(.*)_(.*).01', '$2')
    If $sFormat >= $StartData And $sFormat <= $EndData Then
        _ArrayAdd($ChoosenFiles, $sFiles[$i])
    EndIf   
Next
Return $ChoosenFiles

EndFunc


Func _2DArrayAdd(ByRef $avArrayTarget, Const ByRef $avArraySource)
    If Not IsArray($avArrayTarget) Then Return SetError(1, 0, 0)
    If Not IsArray($avArraySource) Then Return SetError(2, 0, 0)
    Local $iUBoundTarget1 = UBound($avArrayTarget, 1)
    Local $iUBoundTarget2 = UBound($avArrayTarget, 2)
    Local $iUBoundSource1 = UBound($avArraySource, 1)
    Local $iUBoundSource2 = UBound($avArraySource, 2)
    If $iUBoundTarget1 <> $iUBoundSource1 Then  Return SetError(3, 0, 0)
    If $iUBoundTarget2 <> $iUBoundSource2 Then  Return SetError(3, 0, 0)
    
    For $i = 0 To $iUBoundTarget1 - 1
        For $j= 0 To $iUBoundTarget2 - 1
            $avArrayTarget[$i][$j] += $avArraySource[$i][$j]
        Next
    Next
EndFunc


Выкладываю нужные для проверки файлы:
Помогите кто-нибудь!
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Вообще-то, если
Код:
If $string[17]=1 ; 2,3,..,7


то оно всегда
Код:
$string[17]<8

:beer:
 
Автор
P

Pat4005

Новичок
Сообщения
85
Репутация
4
Тупанул, понимаю. Но как осуществить задуменное все равно не просекаю. C2H5OH, у себя не пробовал запустить?
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
С какой целью запустить? Я не знаю что там смотреть - я не понимаю поставленную задачу
Осталось научить скрипт считать всё в двумерный массив(должны сложиться все массивы $zona, которые изменяются(подсчитываются) в цикле с помощью _2DArray).
 
Автор
P

Pat4005

Новичок
Сообщения
85
Репутация
4
Я пытаюсь сделать так, чтобы при каждом проходе цикла, перебирающего массив $filesarray(те имена файлов, которые извлекает в массив ф-ция _IntervalChoice) происходило прибавление к 2Дэ массиву $zona поступательно по одному такому же(но каждый новый с другими данными из разных Z-Файлов соответственно). Таким образом должен получиться двумерный массив $zona, полный данных, и готовый отправиться в txt файл, но это уже другая история(хотя и с этим проблемы есть и если кто обратит внимание на текст в этих скобках, тоже просьба подтолкнуть на путь истинный т.к. 2d массивы в файл оказывается сложней чем ядумал...). Заранее спасибо. Хотя бы за внимание.. :(
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
#Include <File.au3>
#Include <Array.au3>

Dim $aRecords
Const $zoneAmount=8
Const $ticketType=4
Const $ZstringNumPar=17
Global $array[$ZstringNumPar]
Global $ZONA[$ticketType][$zoneAmount]
Global $Zona2[$ticketType][$zoneAmount]
Global $Zona3[$ticketType][$zoneAmount]

Global $path='C:\kontur\stat\'
$dirExist=DirGetSize("C:\kontur\stat\")
If $dirExist=-1 then
$newPath=InputBox("Неверный путь",'Введите новый путь к папке статистики(stat)')
$filesarray=_IntervalChoice($newPath)
Else
$filesarray=_IntervalChoice($path)
Endif

_ArrayDisplay($filesarray)
For $i=1 to UBound($filesarray)-1
If Not _FileReadToArray('C:\kontur\stat\'& $filesarray[$i],$aRecords) Then
   MsgBox(4096,"Ошибка", " Ошибка чтения файла в массив. @error=" & @error)
   Exit
EndIf
For $i = 1 to $aRecords[0]
    $string = StringSplit($aRecords[$i],",") ; Присваиваем массиву всю строку
	If $string[6] >= 9999 Then ContinueLoop
	For $j = 0 To 7
		If $string[17]=$j and $string[10]=3 and $string[11]=0 Then $ZONA[0][$j] += 1; f
		If $string[17]=$j and $string[10]=3 and $string[11]=1 Then $ZONA[1][$j] += 1; k
		If $string[17]=$j and $string[10]=3 and $string[11]=2 Then $ZONA[2][$j] += 1; L(M)
		If $string[17]=$j and $string[10]=4 and $string[11]=0 Then $ZONA[3][$j] += 1; СЛУЖЕБНЫЕ(PID)
	Next
Next

; ===============================================================================
; Вот это место нифига непонятно. Что сделать хотел???
; VVVVVVVVVVVVVVVVV

; $zona($i)=$zona
; _2DArrayAdd($zona, $zona)

; ===============================================================================

Next
_ArrayDisplay($zona)


Func _IntervalChoice($path='C:\kontur\stat\')
Dim $ChoosenFiles = _ArrayCreate(0)
$StartData=InputBox("Создание отчета",@LF&@LF&@LF&"Введите дату начала отсчета в формате ГГММДД" &@LF& @TAB&"     для создания отчета",'','',300,250)
$EndData=InputBox("Создание отчета",@LF&@LF&@LF&"Введите дату конца отсчета в формате ГГММДД" &Chr(10)& @TAB&"     для создания отчета",'','',300,250)
Global $StartData
Global $EndData

$sFiles = _FileListToArray($path)
For $i = 0 To UBound($sFiles) -1
    $sFormat = StringRegExpReplace($sFiles[$i], 'Z_(.*)_(.*).01', '$2')
    If $sFormat >= $StartData And $sFormat <= $EndData Then
        _ArrayAdd($ChoosenFiles, $sFiles[$i])
    EndIf
Next
Return $ChoosenFiles

EndFunc


Func _2DArrayAdd(ByRef $avArrayTarget, Const ByRef $avArraySource)
    If Not IsArray($avArrayTarget) Then Return SetError(1, 0, 0)
    If Not IsArray($avArraySource) Then Return SetError(2, 0, 0)
    Local $iUBoundTarget1 = UBound($avArrayTarget, 1)
    Local $iUBoundTarget2 = UBound($avArrayTarget, 2)
    Local $iUBoundSource1 = UBound($avArraySource, 1)
    Local $iUBoundSource2 = UBound($avArraySource, 2)
    If $iUBoundTarget1 <> $iUBoundSource1 Then  Return SetError(3, 0, 0)
    If $iUBoundTarget2 <> $iUBoundSource2 Then  Return SetError(3, 0, 0)

    For $i = 0 To $iUBoundTarget1 - 1
        For $j= 0 To $iUBoundTarget2 - 1
            $avArrayTarget[$i][$j] += $avArraySource[$i][$j]
        Next
    Next
EndFunc
 
Автор
P

Pat4005

Новичок
Сообщения
85
Репутация
4
Хотел чтобы в массив $zona считалось всё что проходит через цикл, даже тот же самый $zona только "один цикл назад". Я не знал как подойти. Может в другую переменную(массив) считывать. ну не знаю
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Ну так убери этот кусок вообще
Код:
$zona($i)=$zona
_2DArrayAdd($zona, $zona)


Ты же и так суммируешь всё в одну и ту же матрицу.

Отредактировал скрипт в прошлом посте. Бери и запускай.
 
Автор
P

Pat4005

Новичок
Сообщения
85
Репутация
4
Ну ведь он не суммирует. Если со старым куском он хотя бы что то суммировал(оказалось перемножал себя на два), то теперь просто выдает мне в массиве $zona содержимое первого Z-Файла!
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А кроме первого есть и другие???
Где же в твоём скрипте ты их формируешь?
И что в них должно входить?
При построении ZONE ты и так обработал все строки
Код:
For $i = 1 to $aRecords[0]

Из каких данных будут состоять Zone2 и Zone3 ?
 
Автор
P

Pat4005

Новичок
Сообщения
85
Репутация
4
Вот если например я выбрал промежуток z-файлов от ..120327.. до ..120329..(т. е. Z_64374_120327.01, Z_64374_120328.01, Z_64374_120329.01), то $zona будет содержать массив полученный из Z_64374_120327.01, $zona2 и $zona3 из Z_64374_120328.01 и Z_64374_120329.01 соответственно. А смысл в том чтобы получить их общее "сплюсованное" содержание(этих массивов $zona) в один и потом перегнать его в txt файл(но этого в коде нету).
 
Верх