Como adicionar uma nova dimensão em um Hb_RegExSplit

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Como adicionar uma nova dimensão em um Hb_RegExSplit

Mensagem por asimoes »

2021-01-28 21_19_31-Window.png
2021-01-28 21_19_31-Window.png (8.14 KiB) Exibido 525 vezes
Nesse vetor eu queria adicionar uma segunda coluna para cada linha(multidimensional) ex.:

aLike := Hb_RegExSplit( Chr(12), cTeste )

O retorno é vetor usando Hb_RegExSplit

aLike[1,1] := "TESTE"
aLike[1,2] := "TESTE"
aLike[1,3] := "E"
aLike[2,1] := "TESTE"
aLike[2,2] := "TESTE"
aLike[2,3] := "E"
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Como adicionar uma nova dimensão em um Hb_RegExSplit

Mensagem por asimoes »

Acho que consegui

aTeste := {}
aEval( aLike, {|e,n| aAdd( aTeste, {e, "TESTE", "E"} ) } )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Como adicionar uma nova dimensão em um Hb_RegExSplit

Mensagem por alxsts »

Olá!

Tá fumando o que hein?
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Como adicionar uma nova dimensão em um Hb_RegExSplit

Mensagem por asimoes »

Ficou interessante

Usando aEval para criar JSON

aTeste := {}

aEval( aLike, {|e,n| hRecord := {=>}, hRecord["LINHA"] := e, aAdd( aTeste, hRecord ) } )

Ou

aEval( aLike, {|e,n| hRecord := {=>}, hRecord["LINHA"] := e, hRecord["EJECT"] := n, Hb_HSET( aTeste, Hb_NtoC(n), hRecord ) } )

Ou

aEval( aLike, {|e,n| hRecord := {=>}, hRecord["LINHA"] := e, hRecord["EJECT"] := IF(N < Len(aLike), .T., .F. ), aAdd( aTeste, hRecord ) } ) ou

aEval( aLike, {|e,n| IF( n=1, aTeste := {}, ), hRecord := {=>}, hRecord["LINHA"] := e, hRecord["EJECT"] := n < Len(aLike), aAdd( aTeste, hRecord ) } )

Notem que a variável aTeste foi inicializada na função aEval usando o indice n para testar
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder