Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ordenar em Sequencia Numérica Memo


methoduz

Pergunta

Olá pessoal, busquei um pouco pelo forum, mas não sabia como procurar exatamente esta minha necessidade,..

tipo eu estou precisando de um modo pra pôr em sequencia numérica esse tpo de texto q irá conter no meu Memo.

1(MOV-00000-0-0000-0000-0000-000000-0101111000)

2(MOV-00000-0-0000-0000-0000-000000-0101111148)

3(MOV-00000-0-0000-0000-0000-000000-0101111155)

6(MOV-00000-0-0000-0000-0000-000000-0101111200)

5(MOV-00000-0-0000-0000-0000-000000-0101111240)

8(MOV-00000-0-0000-0000-0000-000000-0101111300)

eu queria q por exemplo num laço ele percorra linha por linha e ordene a sequencia numérica,..

eu tenho dois edits, onde em cada um eu pego o valor do inicio e o fim da sequencia q eu quero q ele ordene,..

eu estou usando :

x:= StrToInt(Edit1.Text);
y:= StrToInt(Edit2.Text);

    while x < y do
     begin
      Memo1.Text := StringReplace(Memo1.Text, IntToStr(x)+'(' ,IntToStr(x)+'(',[rfReplaceAll, rfIgnoreCase]);
      x:=x+1;
     end;
   Memo1.Text := StringReplace(Memo1.Text, IntToStr(x)+'(' ,IntToStr(x)+'(',[rfReplaceAll, rfIgnoreCase]);

estou fazendo algo errado?! alguém teria alguma ideia de como fazer isso de uma maneira melhor?

obrigado pela atenção! :wacko:

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

experimente assim

procedure Ordenar(Valores: tStrings);
var i, j : integer;
    temp : string;
begin
  for i := 0 to Valores.Count - 1 do
    for j := 0 to Valores.Count - 2 do
    begin
      if ansiUpperCase(Valores[j]) > ansiUpperCase(Valores[j + 1]) then
      begin
        TEmp := Valores[j];
        Valores[j] := Valores[j + 1];
        Valores[j + 1 ] := TEmp;
      end;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Ordenar(memo1.lines);
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Dei uma lida, melhor em alguns trecos na net e acabei conseguindo fazer desta maneira :

procedure TfrmPrincipal.BitBtn1Click(Sender: TObject);
var
inicio,fim,n,i,t: SmallInt;
 str,numero: String;
begin

 inicio := StrToInt(Edit1.Text);
 fim := StrToInt(Edit2.Text);
 n := inicio;

  for i := 0 to Memo1.Lines.Count - 1 do
  begin
   str := Memo1.Lines[i];
   t := pos('(',str) - 1;
   Delete(str,1,t);
   Memo1.Lines[i] := IntToStr(n) + str;
   inc(n);
   if n > fim then
    Break;
  end;
end;

problema resolvido, muito obrigado Jhonas, vou salvar o seu codigo aqui! vlw

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...