Ir para conteúdo


Foto

Editar arquivo de texto

editar arquivo de texto string split replace

Melhor Resposta joelson0007, 15 abril 2013 - 08:41

  1. ; lendo o arquivo txt
  2. $read = FileRead(@ScriptDir&"\teste.txt")
  3. ;criando uma variavel de retorno para o metodo regex
  4. $ret = StringRegExp($read,"(?i)(?s)(licença.*?auto-login)",3)
  5. ;checando se o retorno é uma array
  6. ;se for uma array então abre o arquivo txt com a bandeira 2
  7. que serve para apagar o que já existe
  8. $hFile = FileOpen(@ScriptDir&"\teste.txt",2)
  9. ;escrevendo no arquivo aberto a primeira array retornada do
  10. ;na variável $ret
  11. FileWrite($hFile,$ret[0])
  12.  
metodo regex
StringRegExp($read,"(?i)(?s)(licença.*?auto-login)",3)

isso é a pattern usada no código
(?i)(?s)(licença.*?auto-login)

(?i)serve para ligar o modo case sensitive, ou seja pegar maiúsculas e minusculas
(?s)server para pegar sub linhas da variavel
nesse exemplo abaixo, o que é colocado entre parenteses, e que não é opções tipo (?i)(?s) etc, é considerado grupo StringRegExp
(licença.*?auto-login)

veja a o metodo usado no texto abaixo

(autor.*?permitir)
o () grupo de algo
o . significa qualquer caractere
o * siginifca quantidade infinida de caracteres
o ? siginifca menos possivel

logo a interpletação seria qualquer coisa menos possivel entre as palavras autor e permitir, o que tiver fora do grupo é eliminado
(autor.*?permitir)

Licença de Software, ou seja, se o (autor de um programa não permitir) automação do mesmo

depois de executado o StringRegExp, tudo que estiver dentro do grupo vai ser retornado como array, se foi usado a bandeira 2,3 ou 4
se usar a bandeira 1, vai retornar verdadeiro ou falso

como só existe um grupo no método acima, vai retornar somente uma array

sempre que usar o StringRegExp, com a bandeira 2,3 ou 4 você pode usar _ArrayDisplay para debugar o que está retornando

tentei explicar mais acho que não expliquei nada kkkkk Visualizar todo o conteúdo do post


  • Por favor, faça o login para responder
10 respostas neste tópico

#1 pickinou

pickinou

    Membro

  • Membros
  • Pip
  • 80 posts
  • LocationCampinas, SP

Postado 14 abril 2013 - 11:08

1° queria que o meu script encontra-se determinada palavra em um arquivo de texto e apaga-se tudo o que ouve-se do lado esquerdo da palavra e deleta-se.

 

2° encontra-se outra palavra e deleta-se tudo o que ouve-se a sua direita e deleta-se

 

3° salva-se "C:\arquivo1_editado.txt"

 

criamos o arquivo de texto "C:\arquivo1.txt" com o seguinte texto:

 

 

Automatização de jogos ou servidores de jogo. Veja abaixo para mais detalhes. Postar script de terceiros teste sem os devidos créditos no final do post. Scripts ou programas que violem o Contrato de Licença de Software, ou seja, se o autor de um programa não permitir automação do mesmo, não será permitido postagens sobre. Burlar teste CAPTCHAs, ignorando teste medidas anti-bot ou outros métodos para burlar de ativação do software. Ferramentas de SPAM, incluindo mensagens instantâneas, isto inclui métodos de auto-login em sites ou fóruns. Keyloggers, Trojans, Bots, Macros, Cheats e quaisquer outras teste formas de malware, fique atento! Decompiladores de AutoIt, postagem de links para decompiladores ou código decompilado

 

palavra para deletar a esquerda [Licença], logo o arquivo "C:\arquivo1_editado.txt" ficaria assim.

 

 

Licença de Software, ou seja, se o autor de um programa não permitir automação do mesmo, não será permitido postagens sobre. Burlar teste CAPTCHAs, ignorando teste medidas anti-bot ou outros métodos para burlar de ativação do software. Ferramentas de SPAM, incluindo mensagens instantâneas, isto inclui métodos de auto-login em sites ou fóruns. Keyloggers, Trojans, Bots, Macros, Cheats e quaisquer outras teste formas de malware, fique atento! Decompiladores de AutoIt, postagem de links para decompiladores ou código decompilado

 

palavra para deletar a direita [auto-login], logo o arquivo "C:\arquivo1_editado.txt" ficaria assim.

 

 

 

Licença de Software, ou seja, se o autor de um programa não permitir automação do mesmo, não será permitido postagens sobre. Burlar teste CAPTCHAs, ignorando teste medidas anti-bot ou outros métodos para burlar de ativação do software. Ferramentas de SPAM, incluindo mensagens instantâneas, isto inclui métodos de auto-login

 

 



#2 joelson0007

joelson0007

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 895 posts
  • LocationGuarapuava - PR

Postado 14 abril 2013 - 11:50

veja se resolve 
 
coloque o texto em um arquivo teste.txt, no mesmo diretório do script
 

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido



#3 pickinou

pickinou

    Membro

  • Membros
  • Pip
  • 80 posts
  • LocationCampinas, SP

Postado 15 abril 2013 - 02:22

Muito Obrigado funcionou perfeitamente, poderia me explicar como esse código funciona ?



#4 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.204 posts
  • LocationMinas Gerais

Postado 15 abril 2013 - 08:16

@joelson0007 estas expressões regulares são uma mão na roda e ainda vou aprender a usá-las.

@pickinou desculpe a curiosidade, poderia responder em que esta função terá utilidade?


Editado por Belini, 15 abril 2013 - 08:17 .


#5 joelson0007

joelson0007

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 895 posts
  • LocationGuarapuava - PR

Postado 15 abril 2013 - 08:41   Melhor Resposta

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

metodo regex
StringRegExp($read,"(?i)(?s)(licença.*?auto-login)",3)

isso é a pattern usada no código
(?i)(?s)(licença.*?auto-login)

(?i)serve para ligar o modo case sensitive, ou seja pegar maiúsculas e minusculas
(?s)server para pegar sub linhas da variavel
nesse exemplo abaixo, o que é colocado entre parenteses, e que não é opções tipo (?i)(?s) etc, é considerado grupo StringRegExp
(licença.*?auto-login)

veja a o metodo usado no texto abaixo

(autor.*?permitir)
o () grupo de algo
o . significa qualquer caractere
o * siginifca quantidade infinida de caracteres
o ? siginifca menos possivel

logo a interpletação seria qualquer coisa menos possivel entre as palavras autor e permitir, o que tiver fora do grupo é eliminado
(autor.*?permitir)

Licença de Software, ou seja, se o (autor de um programa não permitir) automação do mesmo

depois de executado o StringRegExp, tudo que estiver dentro do grupo vai ser retornado como array, se foi usado a bandeira 2,3 ou 4
se usar a bandeira 1, vai retornar verdadeiro ou falso

como só existe um grupo no método acima, vai retornar somente uma array

sempre que usar o StringRegExp, com a bandeira 2,3 ou 4 você pode usar _ArrayDisplay para debugar o que está retornando

tentei explicar mais acho que não expliquei nada kkkkk

Editado por joelson0007, 15 abril 2013 - 09:01 .


#6 Belini

Belini

    Administrador

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.204 posts
  • LocationMinas Gerais

Postado 15 abril 2013 - 03:50

@Joelson0007 talvez até tenha explicado bem sim mais o problema é que usar expressões regulares é difícil mesmo.



#7 pickinou

pickinou

    Membro

  • Membros
  • Pip
  • 80 posts
  • LocationCampinas, SP

Postado 15 abril 2013 - 07:28

@joelson0007 estas expressões regulares são uma mão na roda e ainda vou aprender a usá-las.

@pickinou desculpe a curiosidade, poderia responder em que esta função terá utilidade?

conversão de audio



#8 pickinou

pickinou

    Membro

  • Membros
  • Pip
  • 80 posts
  • LocationCampinas, SP

Postado 15 abril 2013 - 07:29


Muito obrigado amigo, me explicou certinho, muito obrigado.

#9 emilioeiji

emilioeiji

    Novato

  • Membros
  • 4 posts
  • LocationBrasil

Postado 22 outubro 2013 - 01:40

E se eu quisesse excluir uma determinada palavra do arquivo, como faria?


Ou apagar oque estiver entre <SPROCESSORNAME> </SPROCESSORNAME>

#10 emilioeiji

emilioeiji

    Novato

  • Membros
  • 4 posts
  • LocationBrasil

Postado 22 outubro 2013 - 02:35

Fiz uma gambiarra danada que deu até vergolha...

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

onde o /SIV é o final do meu arquivo...

 

Agora outra duvida...

Tenho vários arquivos XML dentro do diretório, queria que o script alterasse todos... como fazer?

 

Abraços



#11 JScript

JScript

    A cada dia que passa eu aprendo muito mais com todos vocês!

  • Administradores (Adm)
  • PipPipPipPipPip
  • 2.445 posts
  • LocationSomewhere out there!

Postado 24 outubro 2013 - 07:31

Responderam o seu tópico, veja:

Por favor Login ou se não possuir um conta Registre-se para ver o conteúdo escondido

 

JS







Tópicos que também usam as tags editar, arquivo, de, texto, string, split, replace:

0 usuário(s) está(ão) lendo este tópico

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Documentação OnLine de referência