GARANTIR DESCONTO

Fórum Uso do setlength #600473

12/02/2019

0

Bom dia, gente!
Estou com dificuldade para salvar alguns dados. No meu programa quero ter uma opção para cadastrar vários informações de um cliente, como por exemplo nome, endereço, idade e etc. Pensei em usar o setlength para aumentar o tamanho da minha string, que no caso se chama "dados" e é array de T_dados, que por sua vez declarei do tipo record.
Nesse "dados" estão vários relatórios com informações de outros clientes, advindos de um arquivo txt (cada linha do arquivo equivale a um cliente e cada coluna uma informação específica como nome...)
pensei em algo assim:
setlength (length(dados)+1).
Infelizmente não sei como fazer isso, se alguém puder me ajudar ficarei extremamente grata.
Obrigada!
Letícia Rodrigues

Letícia Rodrigues

Responder

Post mais votado

12/02/2019

Olá Letícia,

O comando setlength é assim: SetLength(nome_do_array, length(nome_do_array)+1); porém te desaconselho totalmente a trabalhar com arrays e records porque isto é o jeito antigo do pascal de trabalhar.

O Delphi já trabalha com objetos, que até lembram records mas são mais flexíveis:

type
TDados = class
public
property Nome: String read FNome write FNome;
...
end;

E por aí vai. Depois que você criou seus objetos, você pode declarar array desses objetos ou melhor ainda, te aconselho a trabalhar com generics, se sua versão do Delphi for recente:


uses
   generics.collections;

type
   TListaDados = TList<TDado>;
   ...

var
   ld: TListaDados;
   d: TDado;
begin
   id:= TListaDados.Create;
   d:= TDado.Create;
  
   d.Nome:='HELIO';
   d.Idade:=32.

id.add(d);

showmessage(id.Itens[0].Nome);

end;


a vantagem dos generics é que quando você acessa o objeto e dá ponto "." ele mostra uma série de métodos como add, remove, sort, e é muito melhor de trabalhar do que arrays...

Na verdade generics é o jeito moderno das linguagens orientadas a objetos de hoje trabalharem com lista de dados...


Espero ter ajudado. Fique com Deus.





Hélio Devmedia

Hélio Devmedia
Responder

Gostei + 1

Mais Posts

25/02/2019

Letícia Rodrigues

Olá Letícia,

O comando setlength é assim: SetLength(nome_do_array, length(nome_do_array)+1); porém te desaconselho totalmente a trabalhar com arrays e records porque isto é o jeito antigo do pascal de trabalhar.

O Delphi já trabalha com objetos, que até lembram records mas são mais flexíveis:

type
TDados = class
public
property Nome: String read FNome write FNome;
...
end;

E por aí vai. Depois que você criou seus objetos, você pode declarar array desses objetos ou melhor ainda, te aconselho a trabalhar com generics, se sua versão do Delphi for recente:


uses
   generics.collections;

type
   TListaDados = TList<TDado>;
   ...

var
   ld: TListaDados;
   d: TDado;
begin
   id:= TListaDados.Create;
   d:= TDado.Create;
  
   d.Nome:='HELIO';
   d.Idade:=32.

id.add(d);

showmessage(id.Itens[0].Nome);

end;


a vantagem dos generics é que quando você acessa o objeto e dá ponto "." ele mostra uma série de métodos como add, remove, sort, e é muito melhor de trabalhar do que arrays...

Na verdade generics é o jeito moderno das linguagens orientadas a objetos de hoje trabalharem com lista de dados...


Espero ter ajudado. Fique com Deus.






Obrigada Hélio, ajudou sim :)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar