quarta-feira, 3 de dezembro de 2008

Criando uma Type Array Dinâmica em ASP.NET

Muitas vezes quando trabalhamos com funções precisamos retornar uma lista de resultados, e em muitos casos, não sabemos ao certo a quantidade de registros a serem retornados. Sendo na plataforma Win32 ou .NET teríamos várias formas de resolver o problema, algumas mais trabalhosas, é claro, mas poderíamos optar por um caminho simples também, criando uma matriz de forma dinâmica, ou seja, utilizando arrays.

Veremos um exemplo onde defino um novo Type, que por sua vez retornará um array do tipo String. Este Type usaremos na declaração das variáveis, bem como ao passar o Result à function.

Crie uma nova unit, e adicione a ela o seguinte código:

unit uArrayTest;

interface

type

MinhaArray = array of String;//Declaração do tipo

function PreencherArray : MinhaArray;//declara a function

implementation

function PreencherArray : MinhaArray;//implementa a function
var
I: Integer;
Lista : MinhaArray;//variável usando o type
begin
{Precisamos definir o comprimento do array, que pode ser de duas formas:
1 - Quando já sei o comprimento que deverá assumir
2 - Quando o comprimento do mesmo for desconecido
* Utilizaremos o segundo neste caso}
//** SetLength(Lista,10);{Quando eu sei o Length do Array}
for I := 0 to 10 -1 do
begin
SetLength(Lista,Length(Lista) + 1);{Quando não sei o Length do Array, adiciona de 1 em 1}
{Preenche valores de acordo com legth do array}
Lista[i] := 'Preenchendo valor na linha '+i.ToString+'<br>';
end;
SetLength(Result,Length(Lista));//Define comprimento do resultado
{escreve o resultado da função}
Result := Lista;

end;

end.

Ao final, após criada e implementada a função, crie uma nova página e adicione a ela um Button, inserindo o seguinte código no seu evento OnClick:

procedure TDefault.Button1_Click(sender: TObject; e: System.EventArgs);
var
I: Integer;
begin
{Exibe o comprimento do Array}
Response.Write(Convert.ToString(Length(PreencherArray))+' linhas no array<br>');
{Percorre registros e escreve informações na tela}
for I := 0 to Length(PreencherArray) - 1 do
Response.Write(PreencherArray[i]);
end;

Bom, através deste exemplo, você agora poderá implementar esta ferramenta aos seus códigos deixando as operações rápidas e customizadas de acordo com a necessidade de registros que deseja exibir. Abraço e até a próxima.