Jump to content
BHAMF

Pesquisa

Recommended Posts

BHAMF

Olá!

 Preciso da ajuda de vocês, vocês já tentaram usar o CTRL+F do Google Chrome? Bom, estou querendo usar este método de pesquisa, alguém pode me ajudar? Não tenho nem ideia de como se faz isto. 

Obrigado desde já!

B.H.A.M.F 13/10/2016 17:53 (Horário de Brasília)


Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
BHAMF

O que eu estava a dizer, é, como pesquisar os caracteres de uma palavra, e fazer com que a pesquisa apareça na tela, semelhante ao comando CTRL+F do Chrome.


Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
nunopicado

Precisas de um componente (onde esteja o texto) que te permita realçar caracteres.

Depois basta ao pesquisar, varrer o conteúdo desse componente e realçar todas as ocorrências. Mas o "como fazer" vai depender desse componente.


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
BHAMF
Em 05/01/2017 às 18:10, nunopicado disse:

Precisas de um componente (onde esteja o texto) que te permita realçar caracteres.

Depois basta ao pesquisar, varrer o conteúdo desse componente e realçar todas as ocorrências. Mas o "como fazer" vai depender desse componente.

Está mais um problema: não tenho como utilizar componentes, pois trabalho apenas no modo "DOS".

Mas não precisaria necessariamente realçar... Eu queria apenas que, por exemplo, a pessoa digitasse uma letra, e ao apertar enter, o programa mostrasse todas as entradas que comecem com a aquela letra ou que contenham aquela letra. Entende?

 

B.H.A.M.F.

Brasil, 17:43 | 28/12/2018


Brenio Hallison A.M. Filho

 

Share this post


Link to post
Share on other sites
Yamix
6 horas atrás, BHAMF disse:

Está mais um problema: não tenho como utilizar componentes, pois trabalho apenas no modo "DOS".

Mas não precisaria necessariamente realçar... Eu queria apenas que, por exemplo, a pessoa digitasse uma letra, e ao apertar enter, o programa mostrasse todas as entradas que comecem com a aquela letra ou que contenham aquela letra. Entende?

 

B.H.A.M.F.

Brasil, 17:43 | 28/12/2018

Fiz um protótipo para ti, usando a consola mesmo.

Obs: Estou sem computador, então acabo tendo que programar pelo celular, e não dá para testar os códigos ascii das teclas "especiais", então não sei se está certo a tecla delete, então confira aí.

Program PesquisaBox; // PROTOTIPO - By Synaii
 Uses Crt, SysUtils;
 
 Const TeclasPermitidas = ['A'..'Z', '0'..'9', ' ', #46];

 Var Lista: Array [1..3] Of String; // Meu "Banco de dados"
     Pesquisado: String;
 
     // Auxiliares
     I, J: Integer;
     Aux: String;
     Tecla: Char;  
Begin
	  Lista[1] := 'TESTE';
	  Lista[2] := 'FUNCIONA';
	  Lista[3] := 'PESQUISA';
	 
	  Repeat	      
	         GoToXY(1, 1); ClrEol(); WriteLn(Pesquisado);
	         
	         // PEGA O QUE FOI DIGITADO PELO USUARIO
	         Tecla := ReadKey();	         
	         
	         If (UpCase(Tecla) In TeclasPermitidas) Then
	         Begin
	               If ((Tecla = #46) Or (Tecla = '0')) Then
	                 Delete(Pesquisado, Length(Pesquisado), Length(Pesquisado))  		               
	               Else
	                    Pesquisado := Pesquisado + Tecla;
	                               
	               // COMPARA COM AS STRINGS DO BANCO DE DADOS   
	               If (Length(Pesquisado) > 0) Then
	               Begin
	                     For I := Low(Lista) To High(Lista) Do
	                     Begin
	       	                Aux := Lista[I];
	       	    
	       	                J := 1;	       	    
	         	              While ((UpCase(Aux[J]) = UpCase(Pesquisado[J])) And (J <= Length(Aux)) And (J <= Length(Pesquisado))) Do Inc(J);	         	  
	         	  
	         	              If (J > 1) Then
	         	              Begin
	         	                    TextBackGround(Red);	         	  	 
	         	                    Write(Copy(Aux, 0, J - 1)); // LETRAS IDENTICAS
	         	  	  
	               	              TextBackGround(Black);
	         	                    WriteLn(Copy(Aux, J, Length(Aux))); // LETRAS RESTANTE 
	         	              End;   	  	         	  	  	         	  	         	  	  	         	  	         	                                
	                     End;	                         
	               End
	                   Else ClrScr();	          	           	                                  	               
             End;	                        	              	      	      
	  Until (False);
End.

Dá para adicionar várias funcionalidades ainda, então se divirta :D

Edited by Yamix

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.