ARRAY

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Zima
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 06 Jul 2004 19:39
Localização: Santo André

ARRAY

Mensagem por Zima »

Bom dia aos amigos,

Qual é o limite para X abaixo:

DECLARE codi[X] ???

Sds,
Zima
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Zima

Isso vai depender da sua aplicação, respeitando-se os limites impostos pelo próprio Clipper para o número/tamanho de variáveis e vetores, observe que o comando DECLARE é considerado obsoleto para a versão 5.2 e ou superior, sendo recomendado neste caso o uso de PRIVATE.

Você não precisa especificar um valor inicialmente, pode criar um vetor e ir incrementando-o conforme a sua necessidade, o que na minha opnião é mais recomendável.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

O limite de tamanho de um array é de 4096 elementos, tanto no declara quanto no comando AADD, vc pode usar o xHarbour pois nele os arrays não tem limites de tamanho, este limite é a memória disponível na máquina.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
Zima
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 06 Jul 2004 19:39
Localização: Santo André

Mensagem por Zima »

Obrigado Vagner, Marcelo pelo retorno.

Perguntei isso porque tenho a seguinte situação:
- tenho dois bancos de dados (estoque.dbf), em duas lojas distintas.
- até determinado código de produto (de 10000 até 15000), as duas lojas tem os mesmos itens.
- preciso atualizar apenas 3 campos (de estoque.dbf) da loja 2 (custo, revendedor,consumidor) com os preços constantes da loja 1 ... isso porque esses preços na loja 1 são constantemente modificados

Então, pensei:

- em vez de ficar abrindo e fechando os dois arquivos item a item, abriria estoque.dbf da loja 1, jogaria vários registros de uma só vez em uma ARRAY, e depois abriria estoque.dbf da loja 2 e atualizaria os campos necessários !

Foi o que de melhor me ocorreu, mas estou aberto a novas idéias dos amigos do forúm.

Sds !
Zima
clebermano
Usuário Nível 3
Usuário Nível 3
Mensagens: 187
Registrado em: 03 Out 2004 12:39
Contato:

Mensagem por clebermano »

eu ja tive estes problemas com arrays, a saida foi usar banco de dados temporarios.
Vastec - Automacao Comercial Ltda - Ribeirao Preto - SP. (16)3968-2299-(16)8154-7828 (16)8121-4139
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

Como assim,

Vc abre o arquivo 1 pega os dados e fecha
Abre o arquvio 2 grava os dados e fecha
Abre o arquivo 1 pega os dados e fecha
Abre o arquivo 2 grava os dados e fecha...


É isto que vc está fazendo, no seu caso a melhor forma é ficar com os dois bancos de dados abertos referenciando a area de trabalho

USE ESTOQUE NEW ALIAS EST1
USE C:\OUTR\ESTOQUE NEW ALIAS EST2
...
SELECT EST2
REPLACE PRECO WITH EST1->PRECO.

Para este tipo de processo os arrays não são indicados primeiro por não serem necessários e segundo pela sua limitação de dimensão e por ocupar memória do computador.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
Zima
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 06 Jul 2004 19:39
Localização: Santo André

Mensagem por Zima »

É isso, Vagner !

Acho que dessa forma vai dar ... você matou a charada !

Valeu mesmo. Vou implementar para ver o resultado.

Sds,
Zima
Responder