Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ivan.Teles

Localizar informações em um arquivo txt

Recommended Posts

Pessoal tenho um arquivo txt cheio de informações em linhas

 

como faço pra localizar certas informações e ir colocando e outro arquivo txt. A proposito tenho uma referencia.

Deixa eu esplica melhor.

 

Tenho um arquivo txt + ou - menos assim.

texto=daskdjlkajfalsjfldkasjfadjkf-lkdjaslfsadjkfsd*fsadkfhasjkdfha45695jkafhdjkhajkdhdjfhdas+lfkdjadfkljs

texto=daskdjlkajfalsjfldkasjfadjkf-lkdjaslfsadjkfsd*fsadkfhasjkdfh¨-45695jkafhdjkhajkdhdjfhdas+lfkdjadfkljs

texto=daskdjlkajfalsjfldkasjfadjkf-lkdjaslfsadjkfsd*fsadkfhasjkdfh%45695jkafhdjkhajkdhdjfhdas+lfkdjadfkljs

 

não é neste estilo, mas é pra endender. ai eu quero como referencia 45695 e pegar mais 5 caracteres a direira dele totalizando 10 "45695jkafh "e ir colocaddo em outro arquivo txt

 

da pra fazer?

Como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal tenho um arquivo txt cheio de informações em linhascomo faço pra localizar certas informações e ir colocando e outro arquivo txt. A proposito tenho uma referencia.Deixa eu esplica melhor.Tenho um arquivo txt + ou - menos assim.texto=daskdjlkajfalsjfldkasjfadjkf-lkdjaslfsadjkfsd*fsadkfhasjkdfha45695jkafhdjkhajkdhdjfhdas+lfkdjadfkljstexto=daskdjlkajfalsjfldkasjfadjkf-lkdjaslfsadjkfsd*fsadkfhasjkdfh¨-45695jkafhdjkhajkdhdjfhdas+lfkdjadfkljstexto=daskdjlkajfalsjfldkasjfadjkf-lkdjaslfsadjkfsd*fsadkfhasjkdfh%45695jkafhdjkhajkdhdjfhdas+lfkdjadfkljsnão é neste estilo, mas é pra endender. ai eu quero como referencia 45695 e pegar mais 5 caracteres a direira dele totalizando 10 "45695jkafh "e ir colocaddo em outro arquivo txtda pra fazer?Como?

Camarada,Um forma de localizr em string´s e a utilizaçaõ da função INSTR ou INSTRREV.Do link: http://www.superasp.com.br/Devolve a posição da primeira ocorrência de uma string dentro de outra.Dim ProcuraString, ProcuraChar, MinhaPosProcuraString ="XXpXXpXXPXXP" ' String onde procurarProcuraChar = "P" ' Procurar por "P"MinhaPos = Instr(4, ProcuraString, ProcuraChar, 1)' Uma comparação textual a começar em 4 devolve 6Se a função encontrar conicidência retorna a coluna onde se inicia a sequênci pesquisada. Se não encontar retorna 0.Utrilizando INSTR ou INSTRREV com MID, LEFT, RIGTH você consegue fazer o que quer.Agora se seus arquivos textos são mto grande fica mto lento o processamento. Fora o problema em caso de erro durante o processamento o que faria ter de excutar tudo de novo do inicio. t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal consegui abrir o arquivo txt ler as linhas e pegar as posições mas esta dando um erro no MID, o que seria:

 

Do while not varArquivo.AtEndOfStream

StrBusca = "45695" 'recebe o termo de busca

MyPos = Instr(varArquivo.ReadLine, StrBusca) 
texto = mid(varArquivo.ReadLine, MyPos, 10)

Set rs = server.CreateObject("Scripting.FileSystemObject")
Set ObjFile = rs.GetFile(server.MapPath("banco.txt"))
Set objStream = ObjFile.OpenAsTextStream(forAppending, TriDef)

objStream.WriteLine  texto &";"


loop

Esta dando erro na linha:

texto = mid(varArquivo.ReadLine, MyPos, 10)

Erro:

Erro de tempo de execução do Microsoft VBScript (0x800A0005)
Chamada de procedimento ou argumento inválido: 'Mid'

Compartilhar este post


Link para o post
Compartilhar em outros sites

fazendo um array disso usando split não resolve seu problema?

Realmente jonathandj a idéia do array é mto boa tb.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que separando num array o desempenho vai ser melhor, porém dependendo da finalidade do sistema não é o mais indicadolembrando que o arquivo tem separadores diferentes, então antes do split faz um replace pra padronizar os separadores. Depois do array montado você pode fazer uma estrutura de repetição e ir comparando os valores até localizar, não esquecendo que ao montar o array você terá que determinar algum valor que identifique a linha de cada grupo de dadosOu ainda....faz um split tipo issovariavel_procura="45695"arr=split(texto,variavel_procura)response.write(arr(0)&left(arr(1),5))porém nessa forma você vai ter que tratar alguns erros pois se o valor de procura estiver no final do arquivo não terá caracteres posteriores e caso tenha mais de um valor você terá que fazer uma repetição pra listar todos Depois disso é puro FSO para gravar os novos valores no novo txt

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que separando num array o desempenho vai ser melhor, porém dependendo da finalidade do sistema não é o mais indicadolembrando que o arquivo tem separadores diferentes, então antes do split faz um replace pra padronizar os separadores. Depois do array montado você pode fazer uma estrutura de repetição e ir comparando os valores até localizar, não esquecendo que ao montar o array você terá que determinar algum valor que identifique a linha de cada grupo de dadosOu ainda....faz um split tipo issovariavel_procura="45695"arr=split(texto,variavel_procura)response.write(arr(0)&left(arr(1),5))porém nessa forma você vai ter que tratar alguns erros pois se o valor de procura estiver no final do arquivo não terá caracteres posteriores e caso tenha mais de um valor você terá que fazer uma repetição pra listar todos Depois disso é puro FSO para gravar os novos valores no novo txt

Pois é jonathandj gostei do array por causa da questão de performance.Pois manipular string no VB ou ASP é osso e dependendo do tamanho da string o servidor senta e chora.t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.