Discussione: Funzione in C
View Single Post
Old 28-02-2009, 13:36   #4
_Claudio
Senior Member
 
L'Avatar di _Claudio
 
Iscritto dal: Aug 2005
Messaggi: 579
Quote:
Originariamente inviato da legolas977 Guarda i messaggi
Devo creare una funzione che mi permetta di rintracciare alcuni valori all'interno di un buffer di esadecimali, i valori che mi interessa salvare sono associati ad alcuni ID.
Ecco il buffer (La posizione 0 del buffer è il numero degli elementi):
17 00 04 FF FF 80 FF 09 06 FF 80 FF FF FF FF 10 02 FF 80 13 03 FF 80 FF
-IN NERETTO HO INDICATO GLI ID CHE DOVRO' RINTRACCIARE
-IN VERDE IL NUMERO DEGLI ELEMENTI DEL BUFFER
-IN ROSSO IL NUMERO DEGLI ELEMENTI DA SALVARE ASSOCIATI AL SINGOLO ID (che è quello che precede).
-IN BLU I VALORI DA SALVARE ASSOCIATI AL RELATIVO ID PRECEDENTE.
Per intenderci, faccio un esempio, devo salvare i byte FF 80 DEL ID "10" e FF FF 80 FF DEL ID "00".
La lunghezza dei singoli blocchi rimane sempre fissa, il problema è che a volte il buffer che ricevo puo avere blocchi in piu o in meno e la lunghezza dello stesso non è fissa(quella indicata in verde).

Io parto dalla seguente condizione iniziale:
Ho una funzione alla quale passerò ID da 0 a 100 con un ciclo FOR.
La stessa funzione dovrà restituirmi i valori (quelli in blu) che trova per ogni ID rintracciato nel buffer (facendo attenzione alla posizione in cui potenzialmente possa trovarsi questo benedetto ID), mettendomeli in buffer.
Grazie del gentile aiuto.
La cosa che mi viene in mente è fare un albero B+ usando le liste.
Elegante, snello e comodo.
_Claudio è offline   Rispondi citando il messaggio o parte di esso