Fórum Ordenar Array #579475

28/03/2017

0

Boa noite Pessoal
Preciso de uma ajuda de vocês!
Eu carreguei um Arquivo Texto dentro de um Memo. Fiz a separação por delimitador usando POS e COPY.
o meu Arquivo possui 4 colunas e eu preciso Ordenar pela segunda (nome).
Fiz uma função com método de ordenação como o método bolha por exemplo e funcionou, porém somente ele ordena a primeira coluna (o código).
Alguem pode me ajudar em como eu identifico a coluna nome e ordeno o arquivo por ela?
Obrigada
M. C

M. C

Responder

Posts

29/03/2017

Alessandro Yamasaki

Bom Dia


procedure TForm1.Button1Click(Sender: TObject);
var
time1, time2: TDateTime;
p : array[0..32000] of Integer;
n,b,i,s,aux: Integer;
// n usada para controlar segundo laço b para o controlar o progressBar1.Position, para q este preencha seu position igual a b div 320
begin
i:=0;s:=0; aux:=0; b:=1;
time1:=now;//pegando o tempo inicial do programa
n:=32000;
for i:=0 to High(p) do
begin
p[i]:=random(32000);
end;

{
repare que não estou pegando so o tempo de ordenação,
tambem esta sendo pego o tempo de impressao no memo1;
entao irei comparar o tempo de execução total do algoritmo.
}

i:=0;

Memo1.Clear;
while(s=0) do
begin
s:=1;
i:=0;

while(i<n-1) do
begin
if p[i] > p[i+1] then
begin
aux:= p[i+1];
p[i+1]:= p[i];
p[i]:= aux;
s:=0;
end;
i:=i+1;
end;
b:=b+1;
ProgressBar1.Position:= b div 320;
n:=i;
end;
i:=0;
while(i<32000) do
begin
Memo1.Lines.Add(IntToStr(p[i]));
i:=i+1;
end;
time2:=now-time1;
Label3.Caption:='Tempo: '+FormatDateTime('n:ss',time2)+' Segundos';
end;
Responder

Gostei + 0

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

Aceitar