<div class="gmail_extra">Gracias, ahora otra duda parecida, perdona soy un poco pesado:</div><div class="gmail_extra"><br></div><div class="gmail_extra">He intentado hacer algo parecido a lo que acabas de hacer ahora, pero con la función:</div>
<div class="gmail_extra"><a href="http://paste2.org/p/1995011">http://paste2.org/p/1995011</a>
</div><div class="gmail_extra"><br></div><div class="gmail_extra">Algo así he hecho:</div><div class="gmail_extra"><a href="http://paste2.org/p/1995009">http://paste2.org/p/1995009</a>
</div><div class="gmail_extra"><br></div><div class="gmail_extra">Es una replica a lo como lo hicistes tu en la otra función, pero claro ahora el ind. hace que no funcione, sabrías como hacerlo? </div><div class="gmail_extra">
Muchas Gracias ^^ </div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">El 25 de abril de 2012 18:12, Salvador Pozo <span dir="ltr"><<a href="mailto:salvador@conclase.net" target="_blank">salvador@conclase.net</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">El pasado 2012-04-25 15:55:45, Marcos escribió:<br>
<br>
M> Otra pregunta, es posible hacer esta funcion para varias estructuras, no<br>
M> solo stIndice? Esque no se me ocurre nada "razonable"<br>
<div class="im"><br>
void Intercambia(FILE *fi, long iz, long de)<br>
{<br>
   stIndice reg1, reg2;<br>
<br>
   fseek(fi, iz*sizeof(stIndice), SEEK_SET);<br>
   fread(&reg1, sizeof(stIndice), 1, fi);<br>
   fseek(fi, de*sizeof(stIndice), SEEK_SET);<br>
   fread(&reg2, sizeof(stIndice), 1, fi);<br>
   fseek(fi, iz*sizeof(stIndice), SEEK_SET);<br>
   fwrite(&reg2, sizeof(stIndice), 1, fi);<br>
   fseek(fi, de*sizeof(stIndice), SEEK_SET);<br>
   fwrite(&reg1, sizeof(stIndice), 1, fi);<br>
}<br>
<br>
</div>Se puede generalizar más la función, añadiendo otro parámetro que indique el tamaño del registro. Por ejemplo:<br>
<br>
----8<------<br>
void Intercambia(FILE *fi, long iz, long de, long bytesporregistro)<br>
{<br>
   void *reg1;<br>
   void *reg2;<br>
<br>
   reg1 = malloc(bytesporregistro);<br>
   reg2 = malloc(bytesporregistro);<br>
<br>
   fseek(fi, iz*bytesporregistro, SEEK_SET);<br>
   fread(&reg1, bytesporregistro, 1, fi);<br>
   fseek(fi, de*bytesporregistro, SEEK_SET);<br>
   fread(&reg2, bytesporregistro, 1, fi);<br>
   fseek(fi, iz*bytesporregistro, SEEK_SET);<br>
   fwrite(&reg2, bytesporregistro, 1, fi);<br>
   fseek(fi, de*bytesporregistro, SEEK_SET);<br>
   fwrite(&reg1, bytesporregistro, 1, fi);<br>
<br>
   free(reg1);<br>
   free(reg2);<br>
}<br>
----8<------<br>
<br>
La llamada a esta función sería algo así:<br>
<br>
Intercambia(fichero, a, b, sizeof(stIndice));<br>
<br>
Una sugerencia: si vas a cortar y pegar desde una página web, para evitar que salgan "cosas raras", usa un formato de texto plano para los mensajes. De este modo no se copian las hojas de estilo ni los enlaces. Además de que se verá mejor el mensaje, se aligera mucho el tamaño.<br>

<div class="HOEnZb"><div class="h5"><br>
Hasta pronto.<br>
<br>
--<br>
Salvador Pozo (Administrador)<br>
mailto:<a href="mailto:salvador@conclase.net">salvador@conclase.net</a><br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br></div>