Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetInterface HTTPServer SDFileSystem mbed-rpc mbed RemoteIR mbed-rtos
Fork of HTTPServerHelloWorld by
db.cpp
- Committer:
- sarvagyavaish
- Date:
- 2013-12-02
- Revision:
- 3:a3b4d032f48f
- Child:
- 7: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;
}
            
    