Pagina 1 di 3

Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:04 mar 2021, 21:07
da competente69
Salve a tutti.
Scrivo qui perché sono sicuro che mi saprete aiutare. Preciso che in informatica sono ZERO.
Come da titolo, ho necessità di ricercare una sequenza di caratteri esadecimali in un file e sostituirla con un'altra, il tutto sotto Windows.
Attualmente lo faccio a mano con un semplice editor esadecimale, ma l'operazione è noiosa e farla su molti file diventa poco pratica.
Ho realizzato un file batch, dopo allego il codice, che con una serie di stratagemmi e a certe condizioni precise fa quello che mi serve, ma è lentissimo e non è quella la strada giusta.
Sicuramente esiste qualche comando che fa direttamente quello che sto cercando, almeno spero....

Re: Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:04 mar 2021, 21:21
da competente69
questo è il codice che ho utilizzato, fa abbastanza ridere, me ne rendo conto.

Codice: Seleziona tuttocertutil -encodehex "PINCOPALLA.gif" 1.txt
powershell -Command "(get-content 1.txt) -replace '0c 0a ff 00','12 ff 23 0a' -replace '53 00 ff 35','22 00 ff 0a'| Out-File -encoding ASCII 2.txt"
certutil -decodehex 2.txt PINCOPALLA_NEW.gif"
Del 1.txt
Del 2.txt
Pause


Praticamente converto il file PINCOPALLA.GIF (ma può essere qualunque altra estensione) in un file di testo con dentro scritti i numeri in esadecimale, come se lo avessi aperto con un editor esadecimale.
Poi faccio la ricerca delle sequenze esadecimali che mi interessano, le sostituisco e salvo in un nuovo file di testo.
Poi converto al contrario, dal file di testo al formato originale (che in questo caso era un .GIF).
Cancello i due file di testo che non servono più.
La pausa mi serve per capire cosa sta succedendo.

Innanzitutto ci sarà sicuramente un comando che cerca direttamente in esadecimale, inoltre servirebbe che lavori in ram e non sul disco rigido.

HELP ME!

Re: Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:05 mar 2021, 10:24
da schottky
Se non ricordo male Notepad++ che è un editor ottimo per la programmazione, può essere usato anche in modalità esadecimale e contiene la classica opzione trova e sostituisci/ sostituisci tutti

Re: Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:05 mar 2021, 12:50
da competente69
Lo faccio già in manuale con un editor esadecimale, sfruttando la ricerca.
A me serve farlo in automatico con un script, il lavoro di sostituzione è solo uno dei lavori che devo fare all'interno del file, le altre cose riesco a farle.
Poi mi serve farlo in automatico su più file, con l'editor esadecimale è impensabile, almeno credo.
In effetti se la ricerca fosse solo in caratteri letterali o stampabili si fa in una ttimo, invece a me serve farla in esadecimale perchè alcuni caratteri non sono lettere, per cui allo stesso simbolo (per esempio il punto) corrispondono diversi numeri esadecimali, non c'è una corrispondenza univoca.

Re: Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:05 mar 2021, 17:51
da double
Hai provato con le espressioni regolari (pessima traduzione in italiano di regular expressions) ? Sono quelle che si mettono in <cerca e sostituisci> di MSword ed open office) ad esempio
Dovrebbero gestire anche gli esadecimali
https://omegat.sourceforge.io/manual-latest/it/chapter.regexp.html
https://www.evemilano.com/come-funzionano-le-espressioni-regolari-regex/

Re: Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:05 mar 2021, 19:12
da schottky
Giusto quello che dice double, è possibile scrivere degli script in linguaggi shell, io conosco sh csh bash per Linux ma penso ci sia anche qualcosa per windows che appunto possono ricercare espressioni regolari in un file ed eventualmente sostituirle.
Guarda per esempio https://kencorner.com/bash-command-substitution-escape-metacharacters/

Re: Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:05 mar 2021, 19:31
da competente69
Ok, grazie, adesso mi studio un poco i link che mi avete mandato. Ripeto, io non ne capisco veramente nulla di programmazione, già capire quello che avete scritto mi è complicato perchè non conosco nemmeno i vocaboli.
Per esempio "linguaggi shell" oppure "sh csh bash" ignoro completamente cosa siano. E' un limite che ho sempre avuto, purtroppo. Comunque provo a capire, prima o poi...

Re: Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:05 mar 2021, 22:47
da GioRock
Ho creato uno SCRIPT VBS Eseguibile e Modificabile come file di Testo, ora te lo allego come ZIP!!!

Sostituisce una serie di caratteri Esadecimali con una a propria scelta.
(1.76 KiB) Scaricato 5 volte


Ho fatto una prova e funziona, modificando i dati presi da un Editor Esadecimale ha trovato 2 sostituzioni, ho dovuto creare la funzione che conta le sostituzioni complessive...

Attenzione che non ho ancora implementato tutti i controlli di ERRORE sui file, quindi rispetta quello che vedi nell'esempio come SPAZI e VIRGOLE...

Provalo poi fai sapere, purtroppo ho poco tempo per seguire tutto, ma questa era una sfida che ho accettato in memoria dei vecchi tempi :mrgreen: ...

P.S. Se metti lo Script nella stessa cartella dei file, ti risparmi i percorsi che non è poco...

Re: Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:06 mar 2021, 01:53
da competente69
intanto grazie di cuore. L' ho scaricato, domani mattina lo provo.

Re: Ricerca e sostituzione sequenze di caratteri esadecimali

MessaggioInviato:06 mar 2021, 11:22
da competente69
Buongiorno, ho provato lo script di @GioRock e devo dire che FUNZIONA!
Ho cercato di capirne le varie istruzioni all'interno per personalizzarlo, ma ne ho comprese un 5% si e no.
Però non demordo, avendo una base di partenza su cui lavorare piano piano imparerò, magari qualche spiegazione che non trovo in rete me la date voi qui o lo stesso GioRock.
Devo ancora leggere con attenzione i link di @schottky e di @double , ho dato solo uno sguardo sommario.
Per capire tutto mi serve tempo assai ed essendo preso da tante piccole cose (alcune importanti e necessarie, altre che forse potrei evitare) non riesco a fare tutto come vorrei. Questa è una cosa che non posso fare nei ritsgli di tempo, come per esempio quando rispondo nel forum, per studiare mi serve una mezza giornata CONTINUA che non ho praticamente mai :(
Veniamo alle modifiche: vorrei evitare di dover scrivere i nomi di tutti i file da elaborare e sostituirlo con un astesrisco (per esempio *.gif) in modo da elaborare tutti i file con quella estensione di quella cartella. Se metto l'asterisco mi chiede se voglio elaborare tutti i file, ma poi in realtà non li elabora.
Altra cosa non vorrei che nel prompt a video mi chiedesse se voglio sotituire le varie stringhe esadecimali, ma magari mi facesse una domanda che metto io nello script, per esempio "Hai già fatto una copia di sicurezza dei file originali?"
Poi ci sono tante altre piccole cose che dovrei fare, questo era lo scoglio principale (credo!), ma prima ottimizzo questo e poi andiamo avanti.
Un GRAZIE infinito a GioRock e agli altri che si stanno interessando.