none
Procurar palavra RRS feed

  • Pergunta

  • Olá Pessoal,

    Tenho este script que procura uma palavra no arquivo, porém tenho um arquivo HTML que ele não localiza nada, alguém sabe porque?

    Const ForReading = 1


    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("C:\Users\diego.riera\Documents\Scripts\VBScript\Servicetagsdell.txt", ForReading)


    strText = objFile.ReadAll
    objFile.Close


    strSearchWord = "5YG7VL1" & vbCrLf


    If InStr(strText, strSearchWord) <> 0 Then
    wscript.echo "teste"
    End If
    'strNewText = Replace(strText, "Jim ", "James ")


    'Set objFile = objFSO.OpenTextFile("C:\Scripts\Text.txt", ForWriting)
    'objFile.WriteLine strNewText
    'objFile.Close


    Diego Riera

    quinta-feira, 1 de março de 2012 19:05

Respostas

  • Altere a linha que abre o seu arquivo LitleEndian assim

    Set objFile = objFSO.OpenTextFile("C:\Users\diego.riera\Documents\Scripts\VBScript\Servicetagsdell.txt", ForReading, false,-1)
     

    Veja que adicionei dois parametros no final: false e -1, o primeiro parametro que acrescentei diz respeito se o arquivo deve ser criado caso não exista (utilizei false, isto é, não criar) e o segundo diz o formato do arquivo, -1 indica que é Unicode.


    Fábio de Paula Junior

    • Marcado como Resposta DIEGO RIERA segunda-feira, 5 de março de 2012 15:37
    segunda-feira, 5 de março de 2012 12:04
    Moderador

Todas as Respostas

  • Em outros arquivos você testou este script e funcionou?

    Post aqui também o arquivo (pelo menos umas 5 linhas e uma contendo a string que deve ser encontrada).

    Do código que vc postou ele procura por "5YG7VL1" & vbCrLf isto indica o texto "5YG7VL1" no final de uma linha, é isto mesmo?

    Como contorno você poderia ler linha por linha do arquivo verificando se o final da linha contém "5YG7VL1"

    Exemplo:

    strSearchWord ="aaaaaaaaaaaaaa5YG7VL1"
    
    if right(strSearchWord ,7)="5YG7VL1" then
    	wscript.echo "encontrou"
    end if


    Fábio de Paula Junior

    sexta-feira, 2 de março de 2012 11:40
    Moderador
  • Fábio,

    Depois de alguns testes descobri que ele não acha devido a codificação do arquivo que está em UCS-2 Little Endian, porém esses arquivos são criados pelo PCeX VISTA, imagina o que posso fazer?


    Diego Riera

    sexta-feira, 2 de março de 2012 12:38
  • Diego,

    Sem o seu arquivo fica dificil eu testar, tente abrir ele com o notepad++ e ative a opção "View > Show Symbol > Show All Caracters" para vc ver que tipo de caracter ele utiliza.

    Veja o exemplo:

    Veja que na linha 4 o caracter de quebra de linha é apenas o VBCr e nas demais VBCrLf


    Fábio de Paula Junior

    sexta-feira, 2 de março de 2012 15:21
    Moderador
  • Eu já corrigi anteriormente o script, pois a palavra que estou procurando não fica no final da linha.


    Diego Riera

    sexta-feira, 2 de março de 2012 15:41
  • Resolvido? ou ainda não consegue encontrar?

    Fábio de Paula Junior

    sexta-feira, 2 de março de 2012 15:44
    Moderador
  • Ainda não.

    Diego Riera

    sexta-feira, 2 de março de 2012 18:14
  • Altere a linha que abre o seu arquivo LitleEndian assim

    Set objFile = objFSO.OpenTextFile("C:\Users\diego.riera\Documents\Scripts\VBScript\Servicetagsdell.txt", ForReading, false,-1)
     

    Veja que adicionei dois parametros no final: false e -1, o primeiro parametro que acrescentei diz respeito se o arquivo deve ser criado caso não exista (utilizei false, isto é, não criar) e o segundo diz o formato do arquivo, -1 indica que é Unicode.


    Fábio de Paula Junior

    • Marcado como Resposta DIEGO RIERA segunda-feira, 5 de março de 2012 15:37
    segunda-feira, 5 de março de 2012 12:04
    Moderador
  • viva,

    tenho uma dúvida parecida...
    há alguma função que permita encontrar palavra dentro de uma frase ?

    a função instr retorna o índice da ocorrência de um determinado caratere.


    eu pretendo verificar se uma palavra existe (ou não) dentro de uma frase.

    Existe alguma solução "simples" ou tenho de usar a função instr e ir "contando" e "comparando"  cada letra que encontrar a seguir ?



    Exemplo da frase: "Rui Manuel de Oliveira Pereira, Pinheiro, 2490, Ourém, Portugal"

    Agora para encontrar a palavra "2490" uso a função Instr ?

    Já procurei.... mas não encontrei nada...que me esclarecesse...

    alguém me pode ajudar?

    domingo, 11 de maio de 2014 23:29
  • Sim, use o instr.

    Exemplo:

    if instr("Rui Manuel de Oliveira Pereira, Pinheiro, 2490", "2490") then
    	msgbox "Contém"
    else
    	msgbox "Não contém"
    end if

    Ref.:

    InStr Function

    http://msdn.microsoft.com/en-us/library/wybb344c(v=vs.84).aspx


    Fábio de Paula Junior

    segunda-feira, 12 de maio de 2014 13:40
    Moderador
  • ok, vou tentar, obrigado, Fábio :D


    segunda-feira, 12 de maio de 2014 22:46