none
Comando replace em linhas que não contenham determinado valor RRS feed

  • Pergunta

  • Consegui aqui mesmo no fórum o código, entretanto preciso que o replace seja feito apenas nas linhas que nao contenham os valores "user3".

    TXT Original

    049483930484059vxf        user1      Consultoria
    049483930484060vxf        user2      Consultoria
    049483930484061vxf        user3      Farmácia
    049483930484062vxf        user2      Consultoria
    049483930484063vxf        user3      Farmácia
    049483930484064vxf        user3      Farmácia
    049483930484065vxf        user1      Consultoria

    Como gostaria que ficasse

    049483930484059vxf        user1      cancelado
    049483930484060vxf        user2      cancelado
    049483930484061vxf        user3      Farmácia
    049483930484062vxf        user2      cancelado
    049483930484063vxf        user3      Farmácia
    049483930484064vxf        user3      Farmácia
    049483930484065vxf        user1      cancelado

    - vbs

    strArquivo_Original = "dados.txt"
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile_Original = objFSO.OpenTextFile(strArquivo_Original, 1)
    Set objFile_Novo = objFSO.CreateTextFile("i_f.txt")
    
    
    Text1="Farmácia"
    Text2="Consultoria"
    
    
    Do Until objFile_Original.AtEndOfStream
    
    	linhanova=objFile_Original.ReadLine
    	linhanova = replace(linhanova,Text1,"cancelado")
    	linhanova = replace(linhanova,Text2,"cancelado")
    
    	objFile_Novo.writeline linhanova
    
    Loop
    
    objFile_Original.Close
    objFile_Novo.Close



    • Editado Fábio JrModerator segunda-feira, 9 de março de 2015 16:34 Formatação do código
    sábado, 7 de março de 2015 17:08

Respostas

  • Pedro,

    Use o instr para procurar pelo user3 na linha, se achar faça a sua alteração.

    strArquivo_Original = "dados.txt"
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile_Original = objFSO.OpenTextFile(strArquivo_Original, 1)
    Set objFile_Novo = objFSO.CreateTextFile("i_f.txt")
    
    
    Text1="Farmácia"
    Text2="Consultoria"
    
    
    Do Until objFile_Original.AtEndOfStream
    
    	linhanova=objFile_Original.ReadLine
    	
    	if instr(linhanova,"user3")> 0 then	
    		linhanova = replace(linhanova,Text1,"cancelado")
    		linhanova = replace(linhanova,Text2,"cancelado")
    	end if
    	
    	objFile_Novo.writeline linhanova
    
    Loop
    
    objFile_Original.Close
    objFile_Novo.Close


    Fábio de Paula Junior

    segunda-feira, 9 de março de 2015 16:37
    Moderador