Procurar string com POS não deu certo!
Pessoal fiz um pequeno programa para localizar arquivos, pois tenho muitos documentos do word, organizados por tipo de documento e nome.
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:
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,
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
Curtidas 0
Respostas
Eniorm
07/07/2005
sobe galera
GOSTEI 0
Cabelo
07/07/2005
Colega..
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..
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
Michael
07/07/2005
Olá colega!
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
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
Eniorm
07/07/2005
Colega..
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..
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.
--
O Delphi oferece muitas funções para se trabalhar com strings. O problema que a maioria delas não é conhecida.
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
Michael
07/07/2005
A função AnsiContainsText não resolve?
GOSTEI 0
Cabelo
07/07/2005
O acento tb conta...
GOSTEI 0
Michael
07/07/2005
O acento tb conta...
Todas as funções iniciadas com [b:657ebe639d]Ansi[/b:657ebe639d] suportam caracteres acentuados, como AnsiContainsText.
[]´s
GOSTEI 0
Massuda
07/07/2005
Enio,
O código que você postou é o que você está usando?
Tem algum exemplo que não funciona como esperado?
O código que você postou é o que você está usando?
Tem algum exemplo que não funciona como esperado?
GOSTEI 0
Beppe
07/07/2005
[quote:bffa1e5d1d=´Cabelo´]O acento tb conta...
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
Eniorm
07/07/2005
Amigos, agradeço pelo help de todos, a função AnsiContainsText (StrUtils) resolveu de vez meu problema, agora todos os arquivos estão sendo exibidos, pelo menos até agora testei e aparentemente todos apareceram no listbox...
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.
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
Eniorm
07/07/2005
Tudo resolvido, já deu tudo certo, o arquivo ta abrindo blza, era um errinho pq eu naum estava passando a pasta do arquivo, agora ta tudo blza
Se alguem querer o cod é so me pedir por email,
Abraços,
Se alguem querer o cod é so me pedir por email,
Abraços,
GOSTEI 0