Ciao a tutti. Sono nuovo in questo forum, ho cominciato a programmare in C++ all'Universita' ma poi,causa lavoro non attinente, non ne ho piu' avuto tempo. Quindi sono fermo da un paio d'anni. Scusate quindi eventuali domande ingenue. Veniamo al mio problema.

Avrei la necessita' di acquisire un file di testo del tipo riportato qui sotto (sono log di un server Blackberry, ovviamente questo e' un estratto, se dovesse servire vi posso inviare il file intero.

[SIZE=1][I][40000] (09/06 14:32:31):{0x2238} [DIAG] EVENT=Thread_report, THREADID=0x2238, THREADNAME="DebugLogger"
[30145] (09/06 14:32:32):{0x2060} Starting BlackBerry Manager - Version 4.0.0.110
[30146] (09/06 14:32:32):{0x2060} Initializing the MailboxManager with profile BlackBerryServer
[40206] (09/06 14:32:32):{0x2060} MailboxManager::SubsystemInitialize - Using MAPI profile 'BlackBerryServer'


L'output deve produrre stringhe ordinate secondo le refid {0xNNNN}. Cioe' prima tutte le stringhe {0x2238},poi tutte le {0x2060} ecc. Queste refid pero' non si conoscono a priori ma si acquisiscono durante le lettura del file.

Ho pensato quindi di costruire una funzione che conti quante refid diverse sono presenti nel file e ne memorizzi anche i valori.
In questo modo posso poi costruire un array di puntatori di dimensione [numero di refid], che puntino a liste. Gli elementi di una lista dovrebbero essere le stringhe con la stessa refid.

PROBLEMA: non conosco la lunghezza delle stringhe che contengono la refid, quindi non saprei come allocare lo spazio per contenerle.

Riuscite a darmi un parere? Se non sono stato abbastanza chiaro fatemi sapere!

Grazie mille.