Tenemos alguna solución sobre este asunto??<br><br><div class="gmail_quote">2010/1/25 David Lobato <span dir="ltr"><<a href="mailto:dav.lobato@gmail.com">dav.lobato@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Joe, que cabeza la mia, perdona que no respondiese la anterior sobre los BLOBS, se me ha pasado.<div><br></div><div>Así, sin probar nada, yo diria que hacer un memmove del std::vector directamente es peligroso, ya que una vez serializado el objeto, la representación ya no es portable, desde luego no entre máquinas y quizá tampoco entre versiones de la libstdc++.</div>
<div><br></div><div>Yo cogería los datos 'a pelo', los serializaría y para recuperarlos crearía un vector nuevo inizializandolo con los datos leidos desde fichero.</div><div><br></div><div>Para serializar si tienes:</div>
<div><br></div><div>std::vector<int> v;</div><div><br></div><div>Puedes acceder a los datos así:</div><div><br></div><div>&v[0]</div><div><br></div><div>Según la stl se almacenan de manera contigua, por lo que con dicha operación obtienes un 'int*'.</div>
<div>Usando la operación size del vector puedes obtener la longitud del vector y usarlo en un write() o en un memmove()</div><div><br></div><div>Para 'desserializar':</div><div><br></div><div>Primero lees el 'int*' e inicializas el vector así:</div>
<div><br></div>int *arrayInt;<br>std::vector<int> v (arrayInt, arrayInt + nElements );<br><div><br>Por int pon el tipo de datos que quieras, teniendo en cuenta que para serializarlo/desserializarlo necesitaras algún mecanismo (write/read).</div>
<div><br></div><div>Espero que sea de ayuda.</div><div><br></div><div>David. <br><div class="gmail_quote">2010/1/25 Roberto Calvo <span dir="ltr"><<a href="mailto:rocapal@libresoft.es" target="_blank">rocapal@libresoft.es</a>></span><div>
<div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Buenas<br>
<br>
David, tienes por ahí o se te ocurre la mejor manera para serializar un<br>
std:vector de bytes a fichero?<br>
<br>
Ayer me tiré como 2 horas probando diferentes maneras, y me daban todas<br>
siempre violación cuando intentaba leer el fichero. Al menos el fichero<br>
parecía estar bien, ya que tenía los mismo bytes del std:vector que<br>
quiero guardar.<br>
<br>
Grachie!<br>
<font color="#888888"><br>
--<br>
Roberto Calvo Palomino | Libre Software Engineering Lab (GSyC)<br>
Tel: (+34) 91 488 85 23 | Universidad Rey Juan Carlos<br>
<a href="mailto:rocapal@libresoft.es" target="_blank">rocapal@libresoft.es</a> | Edif. Departamental II - Despacho 116<br>
<a href="http://libresoft.es/" target="_blank">http://libresoft.es/</a> | c/Tulipán s/n 28933 Móstoles (Madrid)<br>
<br>
GPG-KEY: <a href="http://gsyc.es/~rocapal/rocapal.gpg" target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
</font></blockquote></div></div></div><br></div>
</blockquote></div><br>