brmbar-github/itemio.c
Cestmir Houska 8b49a62f9e Itemio: Items can be loaded from the data file
Signed-off-by: Cestmir Houska <czestmyr@gmail.com>
2011-04-22 03:09:31 +02:00

62 lines
1.4 KiB
C

#include <stdio.h>
#include <string.h>
#include "itemio.h"
struct item items[ITEM_MAXNUM];
int items_count;
void fill_items()
{
//Add 32 characters for a safe margin
#define BUFSIZE EAN_MAXLEN + NAME_MAXLEN + 32
char buf[BUFSIZE];
FILE *f = fopen("items.txt", "r");
char c;
items_count = 0;
while (fgets(buf, BUFSIZE, f)) {
int i = 0;
int begin = 0;
//Initialize the item
items[items_count].ean[0] = 0;
items[items_count].name[0] = 0;
items[items_count].price = 0;
//Read the item EAN
while (i < BUFSIZE) {
if (buf[i] == '\t') {
buf[i] = 0;
strcpy(items[items_count].ean, &buf[begin]);
buf[i] = '\t';
begin = i+1;
break;
}
i++;
}
//Read the item name
i = begin;
while (i < BUFSIZE) {
if (buf[i] == '\t') {
buf[i] = 0;
strcpy(items[items_count].name, &buf[begin]);
buf[i] = '\t';
begin = i+1;
break;
}
i++;
}
//Use scanf to read the item price
i = begin;
if (i < BUFSIZE) {
sscanf(&buf[i], "%d", &items[items_count].price);
}
items_count++;
}
fclose(f);
}