keuzeproject
Dependencies: mbed HTTPServer RemoteIR mbed-rtos SDFileSystem EthernetInterface mbed-rpc
db.cpp
- Committer:
- sarvagyavaish
- Date:
- 2013-12-02
- Revision:
- 3:a3b4d032f48f
- Child:
- 10:da52ff0b93c0
File content as of revision 3:a3b4d032f48f:
#include "mbed.h" #include "db.h" #include "SDFileSystem.h" void db_insert_tuple(char *new_name, char *new_code) { char tuple_code[128]; char tuple_name[128]; char tuple_id[128]; int id = 0; // create file if it does not exist FILE *ftemp = fopen("/sd/SmartRemote/db.txt", "a"); fclose(ftemp); // read file to get last id FILE *fdb = fopen("/sd/SmartRemote/db.txt", "r"); while ( !feof(fdb) ) { db_get_tuple(fdb, tuple_id, tuple_name, tuple_code); if (strlen(tuple_name) != 0) { printf("Tuple: |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code); id = atoi(tuple_id); } } fclose(fdb); // id of new tuple id++; sprintf(tuple_id, "%d", id); // write new tuple to file char new_row[128]; FILE *fwrite = fopen("/sd/SmartRemote/db.txt", "a"); if (fwrite == NULL) { // if error printf("Could not open file for write\n"); } sprintf(new_row, "%s\n%s\n%s\n", tuple_id, new_name, new_code); // create new row fprintf(fwrite, new_row); // write to file fclose(fwrite); // close file printf("Record Added: %s\n", new_row); } void db_print_all(FILE *fread) { char c; while ( !feof(fread) ) { c=fgetc(fread); printf("%c", c); } } void db_find_tuple(FILE *fread, int id_to_find, char *tuple_name, char *tuple_code) { char tuple_id[128]; int id; while ( !feof(fread) ) { db_get_tuple(fread, tuple_id, tuple_name, tuple_code); if (strlen(tuple_name) != 0) { id = atoi(tuple_id); if (id == id_to_find) { break; } } else { sprintf(tuple_id, "%d", 0); sprintf(tuple_id, "%s", ""); sprintf(tuple_id, "%s", ""); } } printf("Tuple Found: |%s| \t |%s| \t |%s|\n", tuple_id, tuple_name, tuple_code); } void db_get_tuple(FILE *fread, char *id_str, char *name_str, char *code_str) { unsigned char c; int index; // read ID; index = 0; do { c = fgetc(fread); id_str[index] = c; index++; } while (c != '\n' && !feof(fread) ); id_str[index-1] = 0; // read NAME; index = 0; do { c = fgetc(fread); name_str[index] = c; index++; } while (c != '\n' && !feof(fread) ); name_str[index-1] = 0; // read CODE index = 0; do { c = fgetc(fread); code_str[index] = c; index++; } while (c != '\n' && !feof(fread) ); code_str[index-1] = 0; }