É possível parar o Notepad + + de pesquisar dentro de arquivos binários?

2

Acabei de descobrir, por meio de um infeliz acidente, que o recurso Find in Files no Notepad ++ pesquisa arquivos dentro de arquivos RAR. Depois de executar várias consultas "localizar e substituir", todos os arquivos RAR que eu tinha na pasta de trabalho agora estão corrompidos.

Eu realmente acho que pesquisar dentro de binários deve ser um recurso opcional, mas por enquanto eu realmente gostaria de recusar isso. Alguém sabe a configuração correta para isso?

Knocks X
fonte

Respostas:

3

O Notepad ++ não pesquisa e substitui arquivos de arquivo internos. Seus arquivos foram corrompidos porque você executou a pesquisa e a substituição em seus próprios arquivos RAR, e não nos arquivos contidos neles.

Suponha que você queira converter todos os arquivos de texto da sua pasta do Mac para o Unix. Para fazer isso, você tem que substituir todos os CR ( 0x0D ) caracteres com LF ( 0x0A ). Vamos supor também que sua pasta contenha o seguinte arquivo chamado "Apple.txt.gz":

1f 8b 08 08 9c c1 81 55 02 00 41 70 70 6c 65 2e 
74 78 74 00 0b c9 c8 2c 56 28 2d 4e 4d 51 e0 2d 
c9 57 48 4a 55 48 cc e3 75 2c 28 c8 49 55 88 8d 
56 48 cb cc 49 d5 e3 05 2b 01 22 de e2 92 cc 9c 
1c a0 02 05 0c 15 84 0d 01 00 d3 0c 65 8c 68 00
00 00 

Este é um arquivo gzip válido que contém um pequeno arquivo de texto "Apple.txt" com quebras de linha CR no estilo Mac. Observe que ele contém um 0d na penúltima linha.

Se você abri-lo no Notepad ++, será semelhante a isto:

‹œÁU Apple.txt ÉÈ,V(-NMQà-ÉWHJUHÌãu,(ÈIUˆVHËÌIÕã+"Þâ’Ìœ „
 ÓeŒh   

Substituir o CR por um LF e salvar resultará em um arquivo corrompido. Vá em frente, tente.

Para evitar isso é o futuro, você deve especificar filtros na caixa de diálogo "Localizar nos arquivos". Por exemplo, se a pasta contiver arquivos .txt, .htm, .html, .rar e .avi e você quiser modificar apenas arquivos de texto e páginas HTML, digite *.txt *.htm *.html no campo "Filtros". Se isso não for prático por algum motivo, você precisará mover os arquivos que não devem ser alterados para fora da pasta na qual o Find in Files é iniciado.

Se você quiser modificar arquivos dentro de arquivos, você deve extraí-los primeiro e recompactá-los após a modificação.

Wolfram Schmied
fonte
Não tenho certeza se estou seguindo. O que significa "procurar e substituir arquivos RAR"? E por que alguém faria isso?
Knocks X
@Knocks X Editou a resposta, isso esclarece isso para você? E como você descobriu, é um erro fazer isso. ;)
Wolfram Schmied
Eu entendo o que o Notepad ++ está fazendo. Está tratando um binário como um texto. Eu só não acho que deveria fazer isso. Isso é um trabalho para editores hexadecimais.
Knocks X
1
Você precisa ter cuidado ao redor dos ovos com esse martelo. Afinal, o Notepad ++ é um editor de texto, não uma motosserra suíça. ;) en.wikipedia.org/wiki/Law_of_the_instrument
Wolfram Schmied
1
Você parece estar com vontade de discutir. A questão aqui é se a maioria dos usuários espera o comportamento "martelo" descrito a partir de um aplicativo de bloco de notas e, caso contrário, se deve ser restringido de acordo com as expectativas. Eu realmente comecei uma discussão separada no site de suporte do Notepad ++, e até agora a maioria dos usuários tende a concordar que não deve ser um martelo e arruinar os arquivos binários.
Knocks X
1

O Notepad ++ não possui o recurso 'Excluir arquivos binários'. Você precisa especificar no filtro de nome de arquivo em quais arquivos deseja que a substituição ocorra caso não queira que TODOS os arquivos sejam verificados.

Confiar na detecção de arquivos binários não é uma boa idéia, pois é possível que os arquivos de texto sejam confundidos como binários (e vice-versa).

snowdude
fonte