Jump to content
Faganga

Substituir dados com Notepad ++

Recommended Posts

Faganga

Boa tarde.

Tenho um ficheiro de texto com 10 milhões de linhas, em que algumas (cerca de 500) têm que ser alteradas. Ao fazer uma pesquisa por uma determinada palavra mostra-me as linhas a serem alteradas. Nessas linhas tenho que alterar 2 palavras em campos distintos, mas quero alterar apenas nas linhas do resultado da pesquisa.

exemplo:

Line 266607:      <DebitAmount>-0.140000</DebitAmount>
 Line 1806697:      <DebitAmount>-22.140000</DebitAmount>
 Line 1844762:      <DebitAmount>-3.410000</DebitAmount>
 Line 1864033:      <DebitAmount>-104.550000</DebitAmount>

Os valores a débito a negativo têm que passar para crédito a positivo.

Pesquisei por  "<DebitAmount>-" e a pesquisa devolveu-me as linhas que têm o valor a negativo. Consigo substituir o que está à esquerda do valor por "<CreditAmount>", mas preciso de substituir também o que está à direita do valor. Só que existe a mesma palavra (</DebitAmount>) em outras linhas que não são para alterar. Quero substitiur apenas nas linhas que a pesquisa devolveu.

Se alguém puder ajudar, desde já agradeço.

 

Share this post


Link to post
Share on other sites
InvertedCloud

Boa noite, recomendo uma vista de olhos ao tópico de expressões regulares, recomendo a captura de padrões, segue um tutorial do próprio editor:

http://docs.notepad-plus-plus.org/index.php/Regular_Expressions

estou um pouco apertado com tempo mas se preciso, dou uma sugestão de uma expressão daqui a umas horas, preciso apenas de despachar alguns trabalhos. Se outra pessoa não resolver entretanto, boa sorte.

Por favor avise se de facto não conseguir e assim que puder, venho dar uma ajuda.

 

Edit: sugestão, ao fazer a captura, tem de contar com o facto de ter uma tag a abrir e uma tag ao fechar, e que procura valores negativos pelo meio. A substituição, posso estar enganado, mas creio que segue a mesma ideia.

Edited by InvertedCloud

Share this post


Link to post
Share on other sites
pluto

Viva como disse o InvertedCloud pode ser feito por RegExp ou Macro 

Para reg exp seria algo do género 

Procurar

(<DebitAmount>-)([0-9/.]+)(</DebitAmount>)

Replace 

<CreditAmount>\2</CreditAmount>

 

Abc

8-C20-CE44-1865-4787-AF5-B-B9964-EC1-C9-

 

Edited by pluto

Share this post


Link to post
Share on other sites
Faganga

Boa tarde.

Peço mais uma vez a vossa ajuda.

Há alguma forma de eliminar todas as transações com data posterior a 31/05/2017? Sendo que a data não consta em todas as linhas da transação.

Exemplo de uma a eliminar:

<Transaction>
    <TransactionID>2017-06-23 1 00010006002164000001</TransactionID>
    <Period>6</Period>
    <TransactionDate>2017-06-23</TransactionDate>
    <SourceID>ADM</SourceID>
    <Description>Importação</Description>
    <DocArchivalNumber>00010006002164000001</DocArchivalNumber>
    <TransactionType>N</TransactionType>
    <GLPostingDate>2017-06-29T13:05:22</GLPostingDate>
    <Line>
     <RecordID>000000000000000000000000000023</RecordID>
     <AccountID>211115108</AccountID>
     <SystemEntryDate>2017-06-29T13:05:22</SystemEntryDate>
     <Description>Factura</Description>
     <DebitAmount>70.000000</DebitAmount>
    </Line>
    <Line>
     <RecordID>000000000000000000000000000024</RecordID>
     <AccountID>72112</AccountID>
     <SystemEntryDate>2017-06-29T13:05:22</SystemEntryDate>
     <Description>Factura</Description>
     <CreditAmount>70.000000</CreditAmount>
    </Line>
   </Transaction>

 

Desde já obrigado.

Share this post


Link to post
Share on other sites
Faganga
Em 09/05/2019 às 21:12, pluto disse:

Viva como disse o InvertedCloud pode ser feito por RegExp ou Macro 

Para reg exp seria algo do género 

Procurar

(<DebitAmount>-)([0-9/.]+)(</DebitAmount>)

Replace 

<CreditAmount>\2</CreditAmount>

 

Abc

8-C20-CE44-1865-4787-AF5-B-B9964-EC1-C9-

 

Boa tarde.

Peço mais uma vez a vossa ajuda.

Há alguma forma de eliminar todas as transações com data posterior a 31/05/2017? Sendo que a data não consta em todas as linhas da transação.

Exemplo de uma a eliminar:

<Transaction>
    <TransactionID>2017-06-23 1 00010006002164000001</TransactionID>
    <Period>6</Period>
    <TransactionDate>2017-06-23</TransactionDate>
    <SourceID>ADM</SourceID>
    <Description>Importação</Description>
    <DocArchivalNumber>00010006002164000001</DocArchivalNumber>
    <TransactionType>N</TransactionType>
    <GLPostingDate>2017-06-29T13:05:22</GLPostingDate>
    <Line>
     <RecordID>000000000000000000000000000023</RecordID>
     <AccountID>211115108</AccountID>
     <SystemEntryDate>2017-06-29T13:05:22</SystemEntryDate>
     <Description>Factura</Description>
     <DebitAmount>70.000000</DebitAmount>
    </Line>
    <Line>
     <RecordID>000000000000000000000000000024</RecordID>
     <AccountID>72112</AccountID>
     <SystemEntryDate>2017-06-29T13:05:22</SystemEntryDate>
     <Description>Factura</Description>
     <CreditAmount>70.000000</CreditAmount>
    </Line>
   </Transaction>

 

Desde já obrigado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.