Newsgroup: it.comp.lang.c
Titolo: Conversione da Esadecimale a Intero

Ok ragazzi consiglio :)))
Mi serve una piccola utility C che mi permetta di convertire un file 
esadecimale (un file MIDI) in un file di interi. Ci sto provando da solo 
ma mi risulta pittosto difficile in quando il file midi è formattato 
pittosto strano...cioè non è un blocco compatto ma ci sono interruzioni, 
header e quant'altro.
C'è qualcuno che sappia indicarmi la via?
Grazie mille!!!

 esadecimale (un file MIDI) in un file di interi. 
EEeehhh ???
non esiste un file esadecimale o un file di interi.. un file č di "byte",
un valore intero da 0 a 255 ciascuno.. Poi, questo valore lo puoi leggere
in formato esadecimale (0x00 ~ 0xff), in formato decimale (0 ~ 255), in
formato ascii ( .. a b c d e ... )
-- 
Zak Zak Zak... cosa devo fare con te ?

 formato ascii ( .. a b c d e ... )
Si si infatti...č tutto il giorno che ci giro sů e dopo aver provato un 
pň di cose sono arrivato alla tua conclusione :)))
Cmq per ora l'unica soluzione che ho trovato č stata quella di 
convertire il file (scritto in esadecimale) in formato ascii e poi 
convertire i simboli ascii in decimali (interi) da conservare in un 
qualche array. Macchinoso? Si un pň si, sopratutto per il fatto che ho 
utilizzato una programmino esterno per convertire il file in ascii e 
questo non mi piace gran chč...

 questo non mi piace gran chč...
Ciao,
sinceramente non ho capito un'acca di cosa hai fatto e specialmente il 
perche'.
Come fa un file midi ad essere scritto in esadecimale?
Giuseppe

 Come fa un file midi ad essere scritto in esadecimale?
Scusami, come mi faceva notare Matic, i file sono sempre byte, quello 
che cambia è come vai ad interpretare tali byte. Ok, i file midi devo 
essere aperti con un editor esadecimale, e non con uno ascii, per poter 
vedere la struttura.
Quello che era il mio scopo era tradurre i caratteri esadecimali (quindi 
quelli generati da un editor esadecimale) in interi (int). I file midi 
sono suddivisi di blocchi di 4 caratteri esadecimali, il mio scopo era 
quello di "tradurre" ogni blocco di 4 caratteri esadecimali in un unico 
intero (e quindi avere alla fine una collezione di interi).
Ora di sicuro avrò fatto un giro assurdo, cioè sicuramente ci sarà stata 
una strada più veloce, per questo ho chiesto qui, sull'ng :)
Ciao!

 
Ciao,
non so ancora se ho capito bene il problema, ma da quello che ho capito, 
io farei nel modo seguente:
1) apertura del file in binary mode (evita problemi con certi caratteri 
tipo carriage return (0Dh), line feed (0Ah))
2) leggi il primo byte in una variabile int 16 bit
3) shifti a sinistra di 8 bit
4) leggi il secondo byte
5) fai un or sulla variabile del punto 2
a questo punto hai un intero a 16bit.
Avanti con la mazza ferrata, che sono in attesa :)
Ciao
Giuseppe

 Avanti con la mazza ferrata, che sono in attesa :)
Eheh niente mazza ferrata :)
Cmq mi sembra un ottimo modo per convertire. Peccato la mia scarsissima 
esperienza (diciamo nulla) a lavorare direttamente sui bit. Magari 
domani mi leggo qualcosa a riguardo e vediamo se riesco a metter su un 
procedimento piů semplice.
Ciao e grazie!

 una strada più veloce, per questo ho chiesto qui, sull'ng :)
Magari prova a cercare e chiedere anche su it.comp.musica.midi
Tempo fa si parlava anche di queste cose...
Vedi ad es.
http://groups.google.com/group/it.comp.musica.midi/browse_frm/thread/273a5814c8778d00/d3b574cd6f2783cf?lnk=st&q=file+midi+author%3AGerolamo&rnum=9&hl=en#d3b574cd6f2783cf
ciao
-- 
Gerolamo 

 
http://groups.google.com/group/it.comp.musica.midi/browse_frm/thread/273a5814c8778d00/d3b574cd6f2783cf?lnk=st&q=file+midi+author%3AGerolamo&rnum=9&hl=en#d3b574cd6f2783cf
Ok grazie mille! Andrň a lurkare anche su quell'altro ng ;)