Uso do setlength

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

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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar