Pic Micro, Arduino, Atmel, Microchip, Freescale, Texas Instrument, ecc. Strumenti di sviluppo, firmware e progetti.
#10390
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....
#10391
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!
#10392
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
#10396
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.
#10399
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/
#10401
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/
#10402
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...
#10404
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...
Bios, competente69 ringraziano
#10407
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.
Dimmer su aspirazione

Ciao a tutti ho una ventola di aspirazione in came[…]

Visita il nostro canale telegram