4D v13.4

Criando arrays

Página Inicial

 
4D v13.4
Criando arrays

Criando arrays  


 

 

Cria-se um array com um dos comandos de declaração de array descritos neste capítulo. Esta é a lista de comandos de declaração de arrays: 

ComandoCria ou redimensiona um array de 
ARRAY INTEGERInteiros 2-bytes
ARRAY LONGINTInteiros 4-bytes (*)
ARRAY REALReais
ARRAY TEXTTextos (até 2 GB de texto por elemento) (**)
ARRAY STRINGAlfanuméricos (Obsoleto no modo Unicode) (**)
ARRAY DATEDatas
ARRAY BOOLEANBooleanos
ARRAY PICTUREImagens
ARRAY POINTERPonteiros

Cada comando de declaração de arrays pode criar ou redimensionar arrays de uma ou duas dimensões. para mais informação sobre arrays de duas dimensões, consulte a seção Arrays de duas dimensões.

(*) Os arrays de tipo Inteiro de 4-bytes permitem a manipulação de dados do tipo Hora. Para mostrar em um formulário de horas, aplique sobre o objeto de formulário associado o formato de saída &/x, no qual x representa o número do formato na lista de formatos de horas (em ordem de aparição). Por exemplo, &/4 mostrará o formato Hora Minuto. 

(**) Os arrays de tipo texto e alfa trabalham com os mesmos tipos de elementos: caracteres.

  • Em modo Unicode (modo por defeito para las bases criadas a partir da versão 11 de 4D), não têm diferença entre os arrays texto e alfa. Se ignora o parâmetro strLen do comando ARRAY STRING. En este contexto, se recomienda utilizar los arrays Texto. El comando ARRAY STRING sólo se conserva por razones de compatibilidad. 
  • Em modo compatibilidade (no Unicode), os comandos ARRAY TEXT y ARRAY STRING diferenciam:
    • Em um array tipo texto, cada elemento é de longitude variável e guarda seus caracteres em partes diferentes da memória. Cada elemento de um array Texto pode conter até 32 000 caracteres.
    • Em um array tipo alfa, todos os elementos tem a mesma longitude fixa (a longitude passada no parâmetro strLen quando se criou o array). Todos os elementos são guardados um depois do outro na mesma parte da memória, que faz que os arrays Alfa sejam mais rápidos que os Texto. Entretanto, os arrays Cadeia não podem ter mais de 255 caracteres.
      Para maior informação, consulte a sessão Códigos ASCII.

A linha de código a seguir cria (declara) um array inteiro de 10 elementos:

 ARRAY INTEGER(aiUmArray;10)

Logo, o código a seguir redimensiona o mesmo array a 20 elementos:

 ARRAY INTEGER(aiUmArray;20)

Finalmente, o código a seguir redimensiona o mesmo array a 0 elementos:
 ARRAY INTEGER(aiUmArray;0)

Os elementos em um array se referenciam utilizando chaves ({…}). Utiliza-se um número dentro das chaves para referir-se a um elemento em particular; esse número é chamado de número do elemento. As linhas seguintes colocam cinco nomes em um array chamado atNomes e então os mostra em janelas de alerta:

 ARRAY TEXT(atNomes;5)
 atNomes{1}:="Ricardo"
 atNomes{2}:="Sara"
 atNomes{3}:="Samuel"
 atNomes{4}:="Diego"
 atNomes{5}:="Rafael"
 For($vlElem;1;5)
    ALERT("O elemento #"+String($vlElem)+" é igual a: "+atNomes{$vlElem})
 End for

Note a sintaxe atNomes{$vlElem}. Em vez de especificar um número literal como atNomes{3}, pode-se utilizar uma variável numérica para indicar que elemento de um array está se direcionando.

Usando as iterações das estruturas de loop (For...End for, Repeat...Until ou While...End while), pedaços compactos de códigos podem direcionar todos ou parte dos elementos em um array.

Existem outros comandos 4D que podem criar e trabalhar com arrays. Mais particularmente:

  • Objetos do tipo List box estão baseado em arrays; vários comandos do tema "List box" trabalham com arrays, por exemplo LISTBOX INSERT ROWS.
  • Pode-se criar gráficos a partir de valores armazenados em tabelas e arrays. Para maiores informações, consulte o comando GRAPH.
  • Apesar da versão 6 trazer um set completo de novos comandos para trabalhar com listas hierárquicas, os comandos LIST TO ARRAY and ARRAY TO LIST (da versão anterior) conservam-se por razões de compatibilidade.

 
PROPRIEDADES 

Produto: 4D
Tema: Arrays

 
VER TAMBÉM 

ARRAY BOOLEAN
ARRAY DATE
ARRAY INTEGER
ARRAY LONGINT
ARRAY PICTURE
ARRAY POINTER
ARRAY REAL
ARRAY STRING
ARRAY TEXT
Arrays
Arrays de duas dimensões