Fórum Procurar string com POS não deu certo! #287388
07/07/2005
0
Ex: Contrato- FULANO DE TAL.doc
Eu pego o nome de todos os arquivos da pasta e coloco numa StringList e uso a função [b:035ed57e2b]POS[/b:035ed57e2b] para localizar o nome de arquivo:
for i := 0 to StringList.Count -1 do if (Pos(NomeProcurado,StringList) <> 0) then ListBox1.Items.Add(StringList[i]);
No ListBox1 são exibidos os arquivos que possuem o nome que eu estou procurando, pode acontecer de ter vários nomes semelhantes, tipo: [b:035ed57e2b]ANTONIO [/b:035ed57e2b]DA SILVA, [b:035ed57e2b]ANTONIO [/b:035ed57e2b]CARLOS, MARCO [b:035ed57e2b]ANTONIO[/b:035ed57e2b]
Mas acontece que o código com o POS não está localizando todos os nomes de arquivos. Achei isso muito estranho. Notei que ele acha alguns nomes e outros não.
Será que alguém pode dar uma luz ai no meu código?
Abraços,
Eniorm
Curtir tópico
+ 0Posts
08/07/2005
Eniorm
Gostei + 0
08/07/2005
Cabelo
Você deve fazer sua pesquisa sempre usando UpperCase, pois se você não usá-lo e o nome estivercadastrado com letras maiúscula e minúsculas, há distinção na função pos..
Gostei + 0
08/07/2005
Michael
O Delphi oferece muitas funções para se trabalhar com strings. O problema que a maioria delas não é conhecida.
No seu caso, use [b:7591ec5698]AnsiContainsText[/b:7591ec5698]. Ela retorna true se uma string está contida em outra, não considerando letras maiúsculas e minúsculas e aceitando acentos e caracteres ANSI.
Procure no help do Delphi pela função. Procure tbm pela unit [b:7591ec5698]StrUtils [/b:7591ec5698]para conhecer mais sobre as funções de string do Delphi.
[]´s
Gostei + 0
08/07/2005
Eniorm
Sim, no momento em que eu jogo os nomes dos arquivos para a StringList eu primeiro uso o UpperCase e na hora de localizar (com o POS) é feita a comparação tudo por letras maiúsculas.
--
Vou dar uma pesquisada, caso encontre uma função que resolva meu problema, eu volto a postar aqui a solução.
Abraços, e obrigado pela ajuda, galera.
Gostei + 0
08/07/2005
Michael
Gostei + 0
08/07/2005
Cabelo
Gostei + 0
08/07/2005
Michael
Todas as funções iniciadas com [b:657ebe639d]Ansi[/b:657ebe639d] suportam caracteres acentuados, como AnsiContainsText.
[]´s
Gostei + 0
08/07/2005
Massuda
O código que você postou é o que você está usando?
Tem algum exemplo que não funciona como esperado?
Gostei + 0
09/07/2005
Beppe
Todas as funções iniciadas com [b:bffa1e5d1d]Ansi[/b:bffa1e5d1d] suportam caracteres acentuados, como AnsiContainsText.
[]´s[/quote:bffa1e5d1d]
Sim, mas Antônio é diferente de Antonio.
Gostei + 0
10/07/2005
Eniorm
Meu outro problema é o seguinte, pra facilitar, gostaria de dar duplo clique no arquivo que está no listbox e que ele abra com o Word (são todos arquivos .doc)
Tentei o ShellExecute mas ainda naum tive muito sucesso.
Queria que o arquivo fosse aberto da mesma forma que é qdo eu clico nele pelo Windows Explorer....
Quem se habilita ??
Abração galera.
Gostei + 0
10/07/2005
Eniorm
Se alguem querer o cod é so me pedir por email,
Abraços,
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)