Fórum Procurar string com POS não deu certo! #287388

07/07/2005

0

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:

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

Eniorm

Responder

Posts

08/07/2005

Eniorm

sobe galera


Responder

Gostei + 0

08/07/2005

Cabelo

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..


Responder

Gostei + 0

08/07/2005

Michael

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


Responder

Gostei + 0

08/07/2005

Eniorm

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.


Responder

Gostei + 0

08/07/2005

Michael

A função AnsiContainsText não resolve?


Responder

Gostei + 0

08/07/2005

Cabelo

O acento tb conta...


Responder

Gostei + 0

08/07/2005

Michael

O acento tb conta...


Todas as funções iniciadas com [b:657ebe639d]Ansi[/b:657ebe639d] suportam caracteres acentuados, como AnsiContainsText.

[]´s


Responder

Gostei + 0

08/07/2005

Massuda

Enio,

O código que você postou é o que você está usando?

Tem algum exemplo que não funciona como esperado?


Responder

Gostei + 0

09/07/2005

Beppe

[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.


Responder

Gostei + 0

10/07/2005

Eniorm

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.


Responder

Gostei + 0

10/07/2005

Eniorm

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,


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar