usando Eaval() com matriz dimensional
Moderador: Moderadores
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
usando Eaval() com matriz dimensional
amigos teria como eu usar o eaval() neste caso aqui?
aArray{{"idade".40}}
Como usar o eaval para quando achar idade ele mudar para 41 por exemplo
e se sim teria como exemplificar como eu faria?
att: Nascimento
aArray{{"idade".40}}
Como usar o eaval para quando achar idade ele mudar para 41 por exemplo
e se sim teria como exemplificar como eu faria?
att: Nascimento
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
usando Eaval() com matriz dimensional
Sim, tem. Mas o que não entendi é como tratar os dados, se 40 coloca em outra matriz? Não deu pra entender qual o objetivo, sem isso, não dá prá exemplificar. Se puder ser mais claro ajuda.Nascimento escreveu:Como usar o eaval para quando achar idade ele mudar para 41 por exemplo
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
usando Eaval() com matriz dimensional
É que tentando imaginar a finalidade, a questão parece esquisita.
Se é um array com os dados de um cadastro/tabela, talvez seja mais interessante usar HASH, e ir direto no registro.
Pensando nas possibilidades, imagino que seja pra algo assim.
Código: Selecionar todos
cTexto := "idade"
nValor := 41
AEval( aArray, { | e | iif( e[ 1 ] == cTexto, e[2] := nValor, Nil ) } )
Código: Selecionar todos
aArray[ "idade" ] := 41
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
usando Eaval() com matriz dimensional
Talvez ajude a entender melhor....
Array é uma lista, mas aí é "uma dentro da outra".
Então, é uma lista contendo listas, esta é a lista principal
Cada sublista contém nome e número, o primeiro (1) é nome e o segundo (2) é número.
AEval() vai passar pela lista principal, e olhar cada sublista
acima o | e | representa cada sublista
Lembrando: 1=nome, 2=número, então e[ 1 ] contém nome, e e[ 2 ] contém número
E foi isso.
É só esquecer a complicação da programação, e pensar no dia a dia, numa lista do dia a dia.
Eu já comentei isso: TUDO no computador vém se tornando mais "humano".
Quem é do tempo do binário, 0 e 1, fica pensando em 0 e 1, e se complica sozinho.
Criança sabe mexer no celular porque é só apontar o dedo, nem precisa saber ler, basta apertar o dedo no desenho.
Quem é do tempo do binário, fica tentando ler, tentando achar explicação pra o que apertar, mas criança apenas aperta: deu certo então é aquele
Essas coisas de array, codeblock, hash, etc. podem até parecer complicadas....
Mas tudo depende de encontrar alguma coisa pra fazer comparação, que torne mais simples entender.
Talvez essa seja interessante pra array:
Array é simplesmente uma lista. normal, bidimensional, multidimensional..... não importa.... array é simplesmente uma lista.
E o que tem nessa lista?
tem primeiro (1), segundo (2), terceiro (3).... etc.
E o que tem no primeiro(1) ?
Pode ser número, string, ou uma nova lista
O que tem de complicado acima?
É tratar uma coisa de cada vez.
array = é uma lista
array[1] = é o primeiro elemento dessa lista
array[1][2] = podemos deduzir que o primeiro elemento contém uma sublista, e isso representa o segundo(2) dessa sublista.
Vamos comparar com outra coisa do dia a dia:
- você vai no mercado, coloca tudo numa sacola, a sacola A - isso é um array, uma sacola com vários produtos
- só que tem mais coisas, pega outra sacola, coloca coisas nessa sacola B - isso é outro array, uma sacola com vários produtos
- só que não quer 2 sacolas, então pega outra, e coloca tudo dentro, seria a sacola C - pronto, um array bidimensional.
Temos uma sacola C, ela é o array bimensional, é uma lista que contém duas sacolas A e B (ou 1 e 2)
sacola A = { tomate, feijao }
sacola B = { açúcar, sal }
sacola C := { sacola A, sacola B }
sacola C = { { tomate, feijao }, { açúcar, sal } }
sacolaC[ 1, 1 ] = tomate
sacolaC[ 1, 2 ] = feijao
sacolaC[ 2, 1 ] = açúcar
sacolaC[ 2, 2 ] = sal
Só tomem cuidado pra não ir no mercado e ficar falando de array, senão vão dizer que estão malucos kkkk
falar pro empacotador: coloque a gelatina no array 2 kkkkk
E com isso, o que seria algo avançado da programação, é mais outra coisa do dia a dia.
Código: Selecionar todos
aArray{{"idade".40}}
Então, é uma lista contendo listas, esta é a lista principal
Cada sublista contém nome e número, o primeiro (1) é nome e o segundo (2) é número.
AEval() vai passar pela lista principal, e olhar cada sublista
Código: Selecionar todos
AEVal( aLista, { | e | .... } )
Lembrando: 1=nome, 2=número, então e[ 1 ] contém nome, e e[ 2 ] contém número
Código: Selecionar todos
| e | iif( e[ 1 ] = "idade", e[ 2 ] := 41, Nil )
É só esquecer a complicação da programação, e pensar no dia a dia, numa lista do dia a dia.
Eu já comentei isso: TUDO no computador vém se tornando mais "humano".
Quem é do tempo do binário, 0 e 1, fica pensando em 0 e 1, e se complica sozinho.
Criança sabe mexer no celular porque é só apontar o dedo, nem precisa saber ler, basta apertar o dedo no desenho.
Quem é do tempo do binário, fica tentando ler, tentando achar explicação pra o que apertar, mas criança apenas aperta: deu certo então é aquele
Essas coisas de array, codeblock, hash, etc. podem até parecer complicadas....
Mas tudo depende de encontrar alguma coisa pra fazer comparação, que torne mais simples entender.
Talvez essa seja interessante pra array:
Array é simplesmente uma lista. normal, bidimensional, multidimensional..... não importa.... array é simplesmente uma lista.
E o que tem nessa lista?
tem primeiro (1), segundo (2), terceiro (3).... etc.
E o que tem no primeiro(1) ?
Pode ser número, string, ou uma nova lista
Código: Selecionar todos
array[1][2]
É tratar uma coisa de cada vez.
array = é uma lista
array[1] = é o primeiro elemento dessa lista
array[1][2] = podemos deduzir que o primeiro elemento contém uma sublista, e isso representa o segundo(2) dessa sublista.
Vamos comparar com outra coisa do dia a dia:
- você vai no mercado, coloca tudo numa sacola, a sacola A - isso é um array, uma sacola com vários produtos
- só que tem mais coisas, pega outra sacola, coloca coisas nessa sacola B - isso é outro array, uma sacola com vários produtos
- só que não quer 2 sacolas, então pega outra, e coloca tudo dentro, seria a sacola C - pronto, um array bidimensional.
Temos uma sacola C, ela é o array bimensional, é uma lista que contém duas sacolas A e B (ou 1 e 2)
sacola A = { tomate, feijao }
sacola B = { açúcar, sal }
sacola C := { sacola A, sacola B }
sacola C = { { tomate, feijao }, { açúcar, sal } }
sacolaC[ 1, 1 ] = tomate
sacolaC[ 1, 2 ] = feijao
sacolaC[ 2, 1 ] = açúcar
sacolaC[ 2, 2 ] = sal
Só tomem cuidado pra não ir no mercado e ficar falando de array, senão vão dizer que estão malucos kkkk
falar pro empacotador: coloque a gelatina no array 2 kkkkk
E com isso, o que seria algo avançado da programação, é mais outra coisa do dia a dia.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
usando Eaval() com matriz dimensional
Também podemos considerar cada sacola do mercado como multidimensional.
O que tem na sacola:
Voltar à definição simples: é uma lista
Cada item dessa lista contém nome e quantidade - nome e quantidade faz parte de uma sub-lista - uma lista de informações.
Vixe....
Podemos considerar que a sacola de mercado é um array, um DBF com 2 campos, ou que os produtos são uma classe com duas propriedades.
Uma sacola de mercado parece que tem tudo de programação.
Como eu disse antes, são coisas que fazem parte do dia a dia, apenas alguém foi tendo idéias sobre como representar isso na programação, de uma forma mais "humana".
O que era um array bidimensional, poderia virar um array de classes, pra ficar mais humano.
lista de produtos, onde cada produto tem produto:Nome, produto:Quantidade
Podemos expandir para o #define também
É louco mas é sensacional:
uma sacola de mercado serviu pra mostrar o que é array, pra que serve #define, o que é classe
e que a evolução de classe, nada mais é do que a programação mais do jeito "humano".
E que facilita o jeito humano: produto:Nome, produto:quantidade, ou produto[ P_NOME ], produto[ P_QTDE ], ao invés de produto[1], produto[2]
Eu sabia que em sacola de mercado cabia bastante coisa, até livros, mas ... que cabe lição de programação, e mostra a evolução de linguagem de programação, só percebi agora.
O que tem na sacola:
Código: Selecionar todos
{
{ "tomate", "2KG" },
{ "feijão", "1KG" }
}
Cada item dessa lista contém nome e quantidade - nome e quantidade faz parte de uma sub-lista - uma lista de informações.
Vixe....
Podemos considerar que a sacola de mercado é um array, um DBF com 2 campos, ou que os produtos são uma classe com duas propriedades.
Uma sacola de mercado parece que tem tudo de programação.
Como eu disse antes, são coisas que fazem parte do dia a dia, apenas alguém foi tendo idéias sobre como representar isso na programação, de uma forma mais "humana".
O que era um array bidimensional, poderia virar um array de classes, pra ficar mais humano.
lista de produtos, onde cada produto tem produto:Nome, produto:Quantidade
Podemos expandir para o #define também
Código: Selecionar todos
#define P_NOME 1
#define P_QTDE 2
produto[ P_NOME ] // ao invés de produto[ 1 ]
produto[ P_QTDE ] // ao invés de produto[ 2 ]
uma sacola de mercado serviu pra mostrar o que é array, pra que serve #define, o que é classe
e que a evolução de classe, nada mais é do que a programação mais do jeito "humano".
E que facilita o jeito humano: produto:Nome, produto:quantidade, ou produto[ P_NOME ], produto[ P_QTDE ], ao invés de produto[1], produto[2]
Eu sabia que em sacola de mercado cabia bastante coisa, até livros, mas ... que cabe lição de programação, e mostra a evolução de linguagem de programação, só percebi agora.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/