• advertisement_alt
  • advertisement_alt
  • advertisement_alt
Jackson Douglas

[RESOLVIDO] Criar ARRAY Vazia

13 posts in this topic

Ola Meus amigos,

é possível criar uma variável array sem informar o seu tamanho e comprimento no Windev... em HARBOUR, basta eu colocar assim
aArray := {} << já sei que é um array... mais vazio

ai eu posso
AADD( aArray, { x, y, z } ) << aqui informei o conteudo

Share this post


Link to post
Share on other sites

Sim, apenas:

MyArray is array of ANSI string

Para array multidimensional, poderia ser (pegando o seu caso como exemplo):

AADD( aArray, { x, y, z } )

MyArray is array of 0 by 3 strings

Share this post


Link to post
Share on other sites

No caso dessa forma eu só posso atribuir Strings dentro da Array correto?
E se for um Array variável?

Por exemplo pegando a ideia do Jackson em Harbour eu poderia fazer AADD( aArray, { nVal, sString, bLogico} )

No caso em Windev seria como?

Share this post


Link to post
Share on other sites
8 minutes ago, admin said:

Por exemplo pegando a ideia do Jackson em Harbour eu poderia fazer AADD( aArray, { nVal, sString, bLogico} )

No caso em Windev seria como?

Por Structure

1 person likes this

Share this post


Link to post
Share on other sites

Ok entendido. Pensei q tinha algo do tipo array of Variant

1 person likes this

Share this post


Link to post
Share on other sites

Janio, esse é um dilema, muitas vezes crio um array, não sei qual vai ser a sua dimensão.

podendo ser

{ 1, 2, 3 ,4 }

{ 1, 2 }

isso em HARBOUR é transparente, ele não se preocupa.... só que quando EU colocar as dimensões, todas as linhas deverão ter as mesmas dimessões

Share this post


Link to post
Share on other sites

Testei aki e tem, parece q array of Variant funciona para forma q falei

 

1 person likes this

Share this post


Link to post
Share on other sites
15 minutes ago, Janio Aguiar said:

MyArray is array of 0 by 3 strings

Pra esse caso eu acrescento elementos a array assim:

ArrayAddLine(MyArray,"00000", "OUTRO TIPO")
ArrayAddLine(MyArray,"00001", "VISA")
ArrayAddLine(MyArray,"00002", "MASTERCARD")

Share this post


Link to post
Share on other sites

Janio minha ideia é pegar a ESTRUTURA de uma tabela em um banco de dados e criar um array a partir dele,

 

Por exemplo em POSTGRES

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'estoque'

 

quero pegar o RESULTSET e popular um ARRAY com eles.

Share this post


Link to post
Share on other sites

O Jackson começou com uma sopinha caldo de bila

Depois colocou umas verdurinhas pra ficar mais grossa

Depois chutou o balde e colocou mocotó de boi dentro e tutano kkkkkkkk

Quote

Janio minha ideia é pegar a ESTRUTURA de uma tabela em um banco de dados e criar um array a partir dele,

Essa precisamos ir pra prancheta pra estudar. Imagino q pegando a idéia do admin (criando uma array of Variant) e junto com a função HDeclareExternal() seja possível fazer isso. Mas precisamos testar hehehe

Vamos aguardar e ver se alguem tem uma solução pra esse caso, até a gente testar

1 person likes this

Share this post


Link to post
Share on other sites
5 horas atrás, Jackson Douglas disse:

Janio minha ideia é pegar a ESTRUTURA de uma tabela em um banco de dados e criar um array a partir dele,

 

Por exemplo em POSTGRES

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'estoque'

 

quero pegar o RESULTSET e popular um ARRAY com eles.

Jackson, não entendi a necessidade de usar um array, para trabalhar o resultado de um select por exemplo, pode usar o próprio DataSource

a função fileToArray faz isso, porém precisa ter a estrutura

1 person likes this

Share this post


Link to post
Share on other sites
6 horas atrás, Jackson Douglas disse:

isso em HARBOUR é transparente, ele não se preocupa.... só que quando EU colocar as dimensões, todas as linhas deverão ter as mesmas dimessões

Jackson em windev se comporta da mesma forma.

arrprodutos is array of 1 by 4



ArrayAddLine(arrprodutos, space(6), 0 , "", ctod("") )



Obs: agora se vc não souber o numero de colunas na hora de declarar ela, vc utiliza depois o Dimension(arrprodutos, i, 10)

 

Abs

2 people like this

Share this post


Link to post
Share on other sites

Para pegar de um Data Source e jogar direto para dentro de uma array, tem de lembrar de definir a array com a mesma estrutura de colunas e então utiliza o comando:

FileToArray(arrContact, CONTACTS)

onde arrContact seria a Array e CONTACTS o Data Source.

 

2 people like this

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