Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
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-lkdjaslfsadjkfsdfsadkfhasjkdfha45695jkafhdjkhajkdhdjfhdas+lfkdjadfkljstexto=daskdjlkajfalsjfldkasjfadjkf-lkdjaslfsadjkfsdfsadkfhasjkdfh¨-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+
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'
fazendo um array disso usando split não resolve seu problema?
Realmente jonathandj a idéia do array é mto boa tb.
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
Consegui, vlw a ajuda galera.
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+
fazendo um array disso usando split não resolve seu problema?