![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#25
|
||||
|
||||
|
Hola Diego, lo más natural sería de que tengas dos archivos: el primero para llevar el registro de tus usuarios y el segundo para llevar registros de sus IMC.
Ahora bien, realizar esto con archivos no es tan fácil puesto que deberás tener mucho código para mantener la referencia entre uno y otro. Si optas por este diseño debes tener el primer archivo una estructura como la siguiente: ID_USUARIO - NOMBRE - APELLIDO - PASSWORD Ese ID_USUARIO será un identificador, y se lo empleará para distinguir a un usuario de otro, por tanto el ID_USUARIO debe ser único a cada persona. El cantidato más firme a ser identificador es el DNI ya que no hay dos personas que tengan un mismo DNI. O si deseas, puedes asignarle cualquier numero. Por ejemplo, al primero que se registra le corresponde el ID 1, al segundo el 2, etc... Ahora viene lo duro, el segundo archivo necesita tener una referencia hacia un ID_USUARIO para hacer la coincidencia. Nuestro segundo archivo como mínimo debe llevar la siguiente estructura: FECHA - REF_USUARIO - MIC ¿Que es ese REF_USUARIO, pues básicamente este campo tendrá el valor de ID_USUARIO al que le pertenecen dichos datos. Por ejemplo, si existe un usuario cuyo ID es 123456, entonces cada uno de sus registros tendrá una forma como la siguiente: xx/xx/xx - 123456 - 20 xx/xx/xx - 123456 - 25 ... yy/yy/yy - 568541 - 15 ¿Cómo hacemos para obtener exclusivamente sus datos? Muy fácil: recorrer el archivo de punta punta e ir buscando solo aquellos cuyo valor REF_USUARIO es igual al ID_USUARIO de la persona que se logueó. Cuando se procesa a registrar un nuevo valor de MIC, deberá bastar con ingresarlo al final del archivo y sin olvidar llenar el REF_USUARIO para que posteriormente podamos recuperar sus datos. Como podrás comprobar esta manera de llevar a cabo el archivo te separa a los usuarios de los registros de IMC pero requiere de mayor código. La manera en que tu lo estás llevando al archivo es básica, y el problema se presenta cuando debes recorrer todos los datos de una misma persona. Otra posibilidad de conseguir esto es un solo archivo. Pero a mi modo de ver es contraproducente ya que terminas registrando duplicados. Una opción es que si deseas llevar un solo archivo es que insertes los datos ordenados por usuarios, de modo que sólo bastaría recorrer los datos desde la posición que le pertenece a dicho usuario hasta que se encuentre al siguiente. Por ejemplo: NOMBRE1 APELLIDO1 PASSWORD1 MIC1-1 MIC1-2 MIC1-3 NOMBRE2 APELLIDO2 PASSWORD2 MIC2-1 .... Pero el algoritmo para extraer adecuadamente los datos debe ser capaz de manerar una cantidad variable de MICs. Por tanto induce a otro código un tanto enrreversado. La tercera alternativa: cuando se crea un usuario, que se cree un archivo destinado a guardar sus propios MICs. De modo que solo puede bastar con levar un registro para hacer corresponder un archivo con un usuario. Algo como esto: NOMBRE - APELLIDO - PASSWORD - NOMBRE_ARCHIVO De modo que al loguearse al sistema, se lee este NOMBRE_ARCHIVO, se lo abre y se recorren sus datos. Esas son las opciones que tienes. Todas requieren de más o menos código, deberás analizar cual de todas esas opciones te conviene. Una cuarta opción es que te pases a estudiar bases de datos y te olvides de archivos y código para recorrer los datos, que abrir y cerrar... pero no se que tan preparado te sientas para aprender sobre esto. Con respecto a obtener la fecha de hoy lo más fácil es emplear la función Now que devuelve la fecha y hora. Por ejemplo:
Saludos, |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| ¿Directivas compilacion? | drykea | Varios | 1 | 03-05-2007 14:51:15 |
| Errores De CompilaciÓn | nax | Varios | 1 | 20-08-2005 07:54:24 |
| WEEK lo hice pero tengo una consulta | jwmoreira | Firebird e Interbase | 0 | 17-03-2005 16:21:34 |
| hice una prueba entre SQL Server y Firebird 1.5 | Michel | Firebird e Interbase | 2 | 07-07-2003 14:57:26 |
|