wow!! que simple!!! la verdad es que yo solo, me complico mas de la cuenta, ahora si!!! anda perfecto!<div><br></div><div>otra vez muchísimas gracias!! no sabes cuanto me ayudaste, ahora entro de lleno en el tema listas y espero llegar para el examen del lunes!, si apruebo te lo voy a deber gran parte a vos jaja, nuevamente gracias por su predisposición. Que gran ayuda son estas listas de distribución!!.<br>
<br><div class="gmail_quote">El 19 de marzo de 2009 22:10, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu" target="_blank">srd4121@njit.edu</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hola Pablo,<div><br>
<br>
Pablo Brunet wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hola a todos de nuevo!<br>
<br>
bueno sigo abordando el tema de las estructuras de datos en C y estoy<br>
en una encrucijada, trato de resolver un ejercicio en el cual me<br>
piden que lea desde un archivo que contiene algunos registros DE<br>
PERSONAS y cuyos campos son localidad, nombre y edad. diseñe el<br>
siguiente algoritmo pero me quede en la parte de llenar el vector con<br>
los datos del archivo.... yo había ideado esto:<br>
<br>
</blockquote>
<br></div>
Veamos el código fuente.<div><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
# include <stdio.h><br>
# include <stdlib.h><br>
# include <iostream><br>
<br>
using namespace std;<br>
<br>
<br>
typedef struct p {<br>
       char nombre[20];<br>
       int edad;<br>
       char provincia[30];};<br>
        FILE * m;        int i;<br>
p v[100];<br>
<br>
int main()<br>
{<br>
 m=fopen("pablo.txt","rb");<br>
 fseek(m,0,0);<br>
 fread(&v,sizeof(v),1,m);<br>
</blockquote>
<br></div>
Después de esta sentencia, segúrate de asignar 'i'. Como ya hemos leído el primer registro, empezaremos el bucle con el segundo. Esto es,<br>
<br>
i = 1;<div><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 while (!feof(m)){<br>
       v[i]=v.nombre;  // ACA ME QUEDE Y NO SE COMO HACERLO... :(<br>
</blockquote>
<br></div>
Aparte de ser incorrecto, esto no es necesario. La función 'fread()' ya ha leído y guardado la información en 'v'.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
       ..............<div><br>
       fread(&v,sizeof(v),1,m);<br>
</div></blockquote>
<br>
El problema realmente tiene que ver con los parámetros que pasas a 'fread()'. Deberías pasar la dirección de la memoria del elemento donde quieres guardar el siguiente registro. Esto sería,<br>
<br>
fread( v+i, ... );<br>
<br>
o si lo prefieres,<br>
<br>
fread( &v[i], ... );<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
       I++ }<br>
 system("PAUSE");<br>
</blockquote>
<br>
Recuerda que debes cerrar el fichero antes de terminar el programa.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
}<br>
<br>
</blockquote>
<br>
Espero que esto te aclare las dudas.<br>
<br>
Steven<br>
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">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>
</blockquote></div><br>
</div>