como usar ascan() com matriz bidirecional?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

como usar ascan() com matriz bidirecional?

Mensagem por clodoaldomonteiro »

Olá pessoal!

Tenho uma array, m365[0,4], que no decorrer do processamento vou adicionando elementos, mas só queria adicionar elementos se o promenro campo não existir, mais ou menos assim:

Código: Selecionar todos

sele pag
do while !eof()
   i=ascan(m365,pag_ed,,,)
   if i > 0           //se achou um elemento com o campo pag_ed 
      m365[i,2]+=Pag_valor //somo o valor ao campo 2 do elemento achado
   else
      aadd(m365,{pag_ed,pag_valor})   //adiciono um novo elemento
   endif
   skip
enddo
No manual do clipper só diz como fazer com vetores simples.

Desde já agradeço a atenção.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem por Toledo »

Clodoaldo, neste caso sua rotina ficaria assim:

Código: Selecionar todos

sele pag
do while !eof()
   i=ascan(m365,{|e| e[1]==pag_ed })
   if i > 0           //se achou um elemento com o campo pag_ed
      m365[i,2]+=Pag_valor //somo o valor ao campo 2 do elemento achado
   else
      aadd(m365,{pag_ed,pag_valor})   //adiciono um novo elemento
   endif
   skip
enddo 
Obs.: e[1] é o valor do primeiro elemento da matriz, no exemplo acima corresponde ao valor de pag_ed.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Mensagem por clodoaldomonteiro »

Toledo!
Valeu a dica, deu certinho, fico te devendo essa.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Responder