Sequencias em Delphi, esta é muito dificil
11/12/2003
0
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
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
Snipes
Curtir tópico
+ 0
Responder
Posts
11/12/2003
Thiago Vidal
To num computador sem Delphi mas acho que posso te ajudar.
Vamos ver:
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.
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
Clique aqui para fazer login e interagir na Comunidade :)