Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define APP_PATH "archivo.dat"
- typedef struct {
- int id_cliente;
- char usuario[20];
- char password[10];
- } _USUARIO_;
- void reset_file() // Se que no es necesario pero la funcion inserta, no sobreescribe.
- {
- FILE *buffer = fopen(APP_PATH, "wb");
- fclose(buffer);
- }
- int insertar_usuario(_USUARIO_ user)
- {
- FILE *buffer;
- /* Abre el archivo para agregar datos al final */
- buffer = fopen(APP_PATH, "ab"); /* Añade datos al final. Si el archivo no existe, es creado */
- if (buffer == NULL) { /* Si no se pudo abrir el archivo, el valor de archivo es NULL */
- return 0;
- } else {
- fwrite(&user, sizeof(_USUARIO_), 1, buffer);
- /* Cierra el archivo */
- fclose(buffer);
- }
- return 1;
- }
- _USUARIO_ newuser(char name[20], char pass[10], int id)
- {
- _USUARIO_ persona;
- persona.id_cliente = id;
- strcpy(persona.usuario, name);
- strcpy(persona.password, pass);
- return persona;
- }
- _USUARIO_ *getuser()
- {
- FILE *buffer;
- _USUARIO_ usuario;
- _USUARIO_ *usuarios; /* Vector dinámico de elementos */
- int i;
- /* Abre el archivo en modo lectura */
- buffer = fopen(APP_PATH, "rb");
- if (buffer == NULL) { /* Si no se pudo abrir el archivo, el valor de archivo es NULL */
- usuarios = NULL;
- printf("No hay usuarios registados.");
- } else {
- fseek(buffer, 0, SEEK_END); /* Posiciona el cursor al final del archivo */
- usuarios = (_USUARIO_ *)malloc((ftell(buffer) / sizeof(_USUARIO_)) * sizeof(_USUARIO_));
- /* Se reserva memoria para todos los elementos almacenados en el archivo */
- /* Se recorre el archivo secuencialmente */
- fseek(buffer, 0, SEEK_SET); /* Posiciona el cursor al principio del archivo */
- fread(&usuario, sizeof(_USUARIO_), 1, buffer);
- i = 0;
- while (!feof(buffer)) {
- usuarios[i++] = usuario;
- fread(&usuario, sizeof(usuario), 1, buffer);
- }
- /* Cierra el archivo */
- fclose(buffer);
- }
- return usuarios;
- }
- void show_users(int cantidad)
- {
- _USUARIO_ *usuarios;
- usuarios = getuser();
- int i;
- for (i = 0; i < cantidad; ++i) {
- printf("\n-------------------------------------------\n");
- printf("userid: %d\n", usuarios[i].id_cliente);
- printf("User: %s\n", usuarios[i].usuario);
- printf("password: %s\n", usuarios[i].password);
- printf("-------------------------------------------\n");
- }
- }
- int main()
- {
- reset_file();
- insertar_usuario(newuser("Dunkan", "pass123", 1));
- insertar_usuario(newuser("Bone", "passwood", 2));
- insertar_usuario(newuser("Mhaien", "silla321", 3));
- insertar_usuario(newuser("nacHO", "nachOasd", 4));
- show_users(4);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement