Что нового

Удаление пустых строк из массива

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Добрый день!

Сразу скажу ,что читал тему: http://autoit-script.ru/index.php?topic=4520.0

Но возникла потребность в означенной задаче, решил ее сделать по иному, в частности: из массива с пустыми строками передать заполненные в новый массив.

Написал следующее:
Код:
$iiii=0
For $i=0 To $iFi ; перебор строк!!
	For $j = 0 To $ii+1 ; перебор столбиков!!

		If $a2[$i][1] <> "" Then
		$aaa[$iiii][$j] = $a2[$i][$j]
		
		Else
		$iiii=$iiii+1
		$i=$i+1
		
		EndIf
	Next

Next


$i, $j - счетчик строк/столбиков исходного массива
$a2 - исходный массив
$aaa - новый массив
$iiii - перебор строк нового массива

Визуально смотрю - вроде должно работать, но копирует лишь 1- строку, не могу сообразить где накосячил.
Помогите.
Сразу скажу - это фрагмент программы, новый массив уже объявлен, и он имеет нужную размерность (она высчитывается как сумма непустых строк исходного массива).
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Приведите два массива - до и после обработки (как оно должно быть).
 
Автор
В

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
[0]||Режим|Суббота|20/11/2015|21/11/2015|22/11/2015|23/11/2015|24/11/2015|25/11/2015|26/11/2015|27/11/2015|28/11/2015|29/11/2015|30/11/2015
[1]||||||||||||||
[2]||||||||||||||
[8]|614000|08:00 // 22:00|09:00 // 18:00|- // -| / 17.54 Субб|08.50 // 18.02 Воскр| |/ -| / 20.54| / 20.52| / 21.53|- // - Субб|09.08 // 10.37 Воскр|- // -
[9]|614006|09:00 // 18:00| // |09.11 // -| - // - Субб|- // - Воскр|09.01 // 12.59|/ -| 09.05 /| | | - // - Субб|- // - Воскр|- // -
[11]|614013|10:00 // 19:00|10:00 // 18:00|- // -|- // - Субб|- // - Воскр|- // -|- // -|- // -|- // -|- // -|- // - Субб|- // - Воскр|- // -
[12]||||||||||||||
[13]|614015|11:00 // 20:00|09:00 // 18:00|- // -|- // - Субб|- // - Воскр|- // -|- // -|- // -|- // -|- // -| 11.00 / Субб|- // - Воскр|- // -


Это скопировал из самого массива (результат, который выдается по:_ArrayDisplay)
ЭТО должно перейти в новый массив в виде:

[0]||Режим|Суббота|20/11/2015|21/11/2015|22/11/2015|23/11/2015|24/11/2015|25/11/2015|26/11/2015|27/11/2015|28/11/2015|29/11/2015|30/11/2015
[8]|614000|08:00 // 22:00|09:00 // 18:00|- // -| / 17.54 Субб|08.50 // 18.02 Воскр| |/ -| / 20.54| / 20.52| / 21.53|- // - Субб|09.08 // 10.37 Воскр|- // -
[9]|614006|09:00 // 18:00| // |09.11 // -| - // - Субб|- // - Воскр|09.01 // 12.59|/ -| 09.05 /| | | - // - Субб|- // - Воскр|- // -
[11]|614013|10:00 // 19:00|10:00 // 18:00|- // -|- // - Субб|- // - Воскр|- // -|- // -|- // -|- // -|- // -|- // - Субб|- // - Воскр|- // -
[13]|614015|11:00 // 20:00|09:00 // 18:00|- // -|- // - Субб|- // - Воскр|- // -|- // -|- // -|- // -|- // -| 11.00 / Субб|- // - Воскр|- // -

Очень надеюсь, что правильно объяснил.
 

Sln

Знающий
Сообщения
45
Репутация
5
ну как-то так :-\

Код:
#include <Array.au3>

; подготовка
Local $src[30][20]
Local $dst[1][20]

For $i = 0 To UBound($src) -1 Step 2
	For $j = 0 To UBound($src, 2) -1
		$src[$i][$j] = $i & ':' & $j
	Next
Next
; проверка
_ArrayDisplay($src)

$k = 0
For $i = 0 To UBound($src) -1
	If $src[$i][0] = '' Then ContinueLoop

	ReDim $dst[$k+1][20]
	For $j = 0 To UBound($src, 2) -1
	$dst[$k][$j] = $src[$i][$j]
	Next
	$k+=1
Next

; проверка результата
_ArrayDisplay($dst)
 
Автор
В

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Похоже оно!
Сейчас в живой программе проверю.
Но на примере работает именно так, как надо.


Добавлено:
Сообщение автоматически объединено:

Да, все работает идеально!
Спасибо огромное!
 
Верх