Sequencias em Delphi, esta é muito dificil

11/12/2003

2

Olá, estou tentando fazer o seguinte.

Tenho um arquivo TXT no seguinte formato:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
01 02 03 04 05 06 07 08 09 10 11 12 13 14 16
01 02 03 04 05 06 07 08 09 10 11 12 13 14 17
01 02 03 04 05 06 07 08 09 10 11 12 13 14 18
01 02 03 04 05 06 07 08 09 10 11 12 13 15 16
01 02 03 04 05 06 07 08 09 10 11 12 13 15 17

São 300.000 linhas todas contendo 15 numeros por linha, o problema e que existem seguencias que eu não quero como por exemplo 6, isto é não quero sequencias de 6 numeros, 5 pode mais de 5 nao exemplo:

01 02 03 04 05 06 07 08 09 10 11 12 14 15 16
a linha acima tem uma sequencia de 12 numeros, 01 a 12 então esta tera que ser eliminada.

01 02 03 04 06 07 08 09 11 12 14 15 16 19 20
ja esta linha de cima não será eliminada pois a sequencia maior são de apenas 4 numeros.

Estou exibindo os dados numa listbox e gostaria de utilizar uma edit para informar o numero da sequencia se 5 ou 6 ou 7 ou 8......ae ele abriria o txt e exibiria a nova sequencia no listbox.
Se alguem pode me ajudar estarei sempre agradecido........

Snipes


Responder

Posts

11/12/2003

Thiago Vidal

To num computador sem Delphi mas acho que posso te ajudar.

Vamos ver:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, iNum: Integer;
  sNum: string;
  Lines: TStrings
begin
  Lines := TStringList.Create;
  with Lines do
    try
      LoadFromFile(´c:\arquivo1.txt´);
      iNum := StrToInt(Edit1.Text); // Le o numero do Edit.
      sNum := IntToStr(iNum); // Volta para o formato string;
      if iNum < 10 then sNum := ´0´ + sNum; // Adiciona o zero na frente
      for i := 0 to Pred(Count) do begin
        if Pos(#32+sNum+32,Strings[i]) > 0 then
          Del(i);
      end;
    finally
      Lines.SaveToFile(´c:\arquivo2.txt´);
      FreeAndNil(Lines);
    end;
end;


Como eu disse, to num computador sem delphi e nao tenho como testar o codigo, mas acho que o principio eh este. qualquer coisa me envie um email.

Este codigo pode ser adaptado para uso em qualquer componente que armazene dados em StringLists, como TMemo ou TListBox. Entao com pequenos ajustes voce pode adaptar o codigo ao seu gosto.


Responder