Sostituisci il carattere specificato con ASCII nul in Notepad ++


1

Ho provato la ricerca estesa -> sostituisci con \0, ma non sembra funzionare. Elimina invece tutte le occorrenze del personaggio. Potrebbe essere un bug?

NB: la sostituzione con \n, \r\ne simili funziona nella ricerca estesa.

Sto usando Notepad ++ 6.4.1 Unicode.

Risposte:


1

Prova \d###(dove # è una singola cifra nell'intervallo 0-9).

Vedi Sequenze di escape supportate in modalità estesa per ulteriori informazioni.

Modifica: sembra che \ d, \ u, \ x ecc. Non funzionino correttamente quando si tratta di sostituire il NULpersonaggio. La ricerca funziona bene (ne ho inseriti alcuni NULusando un editor esadecimale), ma sostituire non funziona e cancella semplicemente i caratteri.


suona come un tempo di segnalazione bug allora :)
Mr_and_Mrs_D

1

Per quanto ne so, Notepad ++ ha sempre avuto problemi con l'inserimento di 0 caratteri.
Notepad ++ non fa eccezione: la maggior parte degli editor non è in grado di gestirlo correttamente.
Non è davvero sorprendente. Trattare con 0 caratteri è un'applicazione di nicchia.

L'unico editor di Windows di cui sono a conoscenza in grado di gestire gli 0 come qualsiasi altro personaggio è UltraEdit.
(E ha anche una modalità di modifica esadecimale, quindi in un modo o nell'altro puoi fare il lavoro con esso.)


1

Le ricerche su Internet hanno dimostrato che l'inserimento di NUL in Notepad ++ non è banale, ad esempio vedi Come inserire un carattere null (ASCII 00) in Notepad?

Un modo hacker per sostituire determinati personaggi / personaggi con NUL è tramite il Plugin Hex Editor .

  1. Passa alla modalità esadecimale (tramite Plugin → HEX-Editor → Visualizza in HEX o Ctrl+ Alt+ Shift+ H)
  2. Evidenzia i personaggi che vuoi sostituire.
    • Puoi evidenziarlo nella colonna "Dump" o nella colonna "0 | 1 | ... | f".
  3. Ctrl+ Hper visualizzare il menu Sostituisci.
    • Cambia "Tipo di dati" in "Esadecimale".
    • I caratteri che hai evidenziato verranno visualizzati sotto "Trova cosa" (come una stringa esadecimale)
    • Inserisci "00" nel campo "Sostituisci con" (ovvero un byte null)
  4. Premi "Sostituisci" o "Sostituisci tutto".

Dichiarazione di non responsabilità: ho sentito da qualche parte che il plug-in Hex Editor è difettoso, ma l'ho usato solo occasionalmente in passato (ha funzionato bene ma il tuo chilometraggio può variare) quindi non conosco davvero l'estensione del suo buggy.

È possibile installarlo tramite Gestione plug-in di Notepad ++ (Plugin → Gestione plug-in → Mostra gestore plug-in) ma potrebbe essere necessario selezionare "Mostra plug-in instabili" in "Impostazioni" di Plugin Manager per visualizzare il plug-in


Ho trovato questo stesso plug-in durante la ricerca e l'ho disinstallato dopo aver bloccato due volte il mio NP ++. Invece ho usato solo un buon vecchio editor esadecimale.
Karan,

@Karan, raramente si è schiantato mentre lo stavo usando. Probabilmente dovrei aggiungere un disclaimer "YMMV" alla mia risposta.
doubleDown

lol si blocca su ctrl + h - ma sì, questo è un passo nella giusta direzione - potresti compilare una segnalazione di bug e pubblicarla qui? modifica: ti avevo visto la domanda; inchiostrato (ho cercato prima di fare una domanda ma non ho funzionato comunque - e ho bisogno di un sostituto non di un inserto)
Mr_and_Mrs_D

@Mr_and_Mrs_D: se gli stai chiedendo di segnalare bug nel plugin, non ti sarà d'aiuto. Quel plugin sembra essere stato abbandonato negli ultimi 4 anni circa.
Karan,

@Mr_and_Mrs_D: non riesco davvero a riprodurlo. Hai un file di grandi dimensioni o qualcosa del genere? Che ne dici di provare Ctrl + F quindi fare clic sulla scheda "Sostituisci" (ovvero provare cose a caso)
doubleDown

0

Come inserire qualsiasi valore di byte in un testo:

  1. Npp-> Plugins-> Python Script->New Script
  2. Seleziona dove salvare ... e dai il nome insert a byte(diciamo)
  3. nel documento Npp aperto inserisci questo codice:

        s= notepad.prompt('Enter value, or series, in a box, e.g.: \x5Cx00 ','Insert a byte ')
        exec("a=b'{}'".format(s))
        editor.addText(a)
    
  4. Save.

  5. Ricomincia Npp

  6. Quindi è necessario visualizzare il proprio script nel menu:
    Npp-> Plugins-> Python Script-> Script->insert a byte
  7. Se si desidera questo collegamento, vedere come: Avvolgere il testo tra virgolette in Blocco note ++

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.