Jump to content
Sign in to follow this  
Luigi

Array 2D, uma forma fácil de adicionar elementos

Recommended Posts

É uma função pequena e bem simples, se você está trabalhando com Array 2D, isto é, com mais de uma coluna, compartilho uma pequena função que pode auxiliar.

 

O índice zero do Array mantêm a quantidade total de elementos, não necessitando contar quantos elementos há no Array a todo a todo momento ( Ubound($aArray, 2) -1 ).

 

Esta função trabalha com até 10 colunas, se precisar de mais colunas, apenas adicione de forma sequencial: $mOpt11 = Default, $mOpt12 = Default, $mOpt13 = Default, e assim por diante...

 

O redimensionamento das colunas é baseado no número de $mOpts que foram enviados para a função, ele sempre redimensiona para maior, nunca pare menor.

#include-once
#include <Array.au3>

;	Criando o array
Global $aTeste[1][3] = [[0]]

;	Adicionando elementos
_ArrayAdd2D($aTeste, "a", "b", "c")
_ArrayAdd2D($aTeste, 1, 2, 3)

;	Visualizando
_ArrayDisplay($aTeste)

Func _ArrayAdd2D(ByRef $aInput, $mOpt1 = Default, $mOpt2 = Default, $mOpt3 = Default, $mOpt4 = Default, $mOpt5 = Default, $mOpt6 = Default, $mOpt7 = Default, $mOpt8 = Default, $mOpt9 = Default, $mOpt10 = Default)
	Local $id = UBound($aInput, 1)
	ReDim $aInput[$id + 1][UBound($aInput, 2)]
	$aInput[0][0] = $id

	#Region AutoIt 3.3.10.0 e superior
	Local $iCol = @NumParams < UBound($aInput, 2) ? @NumParams : UBound($aInput, 2)
	#EndRegion AutoIt 3.3.10.0 e superior

	#Region AutoIt 3.3.8.1 e anterior
;~ 	If @NumParams < UBound($aInput, 2) Then
;~ 		Local $iCol = @NumParams
;~ 	Else
;~ 		Local $iCol = UBound($aInput, 2)
;~ 	EndIf
	#EndRegion AutoIt 3.3.8.1 e anterior
	For $ii = 1 To $iCol
		$aInput[$id][$ii - 1] = Execute("$mOpt" & $ii)
	Next
EndFunc   ;==>_ArrayAdd2D

Edited by Luigi
  • Like 2

Share this post


Link to post
Share on other sites

Trabalhar com Array tem que ter muita atenção.

 

Por incrível que pareça , as vezes coloco uma linha no lugar errado e ai só depois de compilar e executar que o programa dá problemas. :mad2:

 

Mas é isso ai né , vivendo e aprendendo. :lol:

 

Belo exemplo , simples e funcional.

 

Very good man :like_icon:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×