Tenemos alguna solución sobre este asunto??<br><br><div class="gmail_quote">2010/1/25 David Lobato <span dir="ltr">&lt;<a href="mailto:dav.lobato@gmail.com">dav.lobato@gmail.com</a>&gt;</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 &#39;a pelo&#39;, 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&lt;int&gt; v;</div><div><br></div><div>Puedes acceder a los datos así:</div><div><br></div><div>&amp;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 &#39;int*&#39;.</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 &#39;desserializar&#39;:</div><div><br></div><div>Primero lees el &#39;int*&#39; e inicializas el vector así:</div>

<div><br></div>int *arrayInt;<br>std::vector&lt;int&gt; 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">&lt;<a href="mailto:rocapal@libresoft.es" target="_blank">rocapal@libresoft.es</a>&gt;</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>