diff --git a/.gitignore b/.gitignore index 496ee2c..2608ec2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.DS_Store \ No newline at end of file +.DS_Store +.vscode \ No newline at end of file diff --git a/src/_file_information.h b/src/_file_information.h new file mode 100644 index 0000000..1cb5200 --- /dev/null +++ b/src/_file_information.h @@ -0,0 +1,2 @@ +#define MAX_LENGTH 100 +#define CUSTOMER_DATA_FILE "CustomerData.txt" \ No newline at end of file diff --git a/src/currentCustomerAccountBalance.c b/src/currentCustomerAccountBalance.c index 1f87d76..a91e306 100644 --- a/src/currentCustomerAccountBalance.c +++ b/src/currentCustomerAccountBalance.c @@ -13,36 +13,49 @@ float fetchBalanceFromBalanceString(char balance_String[MAX_LENGTH]) { return balance; } -float getAvailableAccountBalance(int user_id) { +float readFileAndGetAvailableBalance(FILE *file, char stringID[MAX_LENGTH]) { + float balance = 0; bool keep_reading = true; - float availableBalance = 0; - char buffer[MAX_LENGTH]; - char stringID[MAX_LENGTH] = "ID="; - char user_id_as_string[MAX_LENGTH]; char balance_String[MAX_LENGTH]; - sprintf(user_id_as_string, "%d", user_id); // converts user_id to string - strcat(stringID, user_id_as_string); - - FILE *file = fopen("CustomerData.txt", "r"); - while(keep_reading) { fgets(buffer, MAX_LENGTH, file); if (feof(file)) { keep_reading = false; } else if(strstr(buffer, stringID)) { - fgets(buffer, MAX_LENGTH, file); - fgets(buffer, MAX_LENGTH, file); - fgets(buffer, MAX_LENGTH, file); - fgets(buffer, MAX_LENGTH, file); + for (int i = 0; i < 4; i++) { + fgets(buffer, MAX_LENGTH, file); + } strcpy(balance_String, buffer); - availableBalance = fetchBalanceFromBalanceString(balance_String); + balance = fetchBalanceFromBalanceString(balance_String); keep_reading = false; } } + return balance; +} + +float getAvailableAccountBalance(int user_id) { + float availableBalance = 0; + char stringID[MAX_LENGTH] = "ID="; + char user_id_as_string[MAX_LENGTH]; + + sprintf(user_id_as_string, "%d", user_id); // converts user_id to string + strcat(stringID, user_id_as_string); + // Now stringID is "ID=user_id" + + FILE *file = fopen(CUSTOMER_DATA_FILE, "r"); + if(file == 0) { + printf("Error: customer data file cannot be opened!\n"); + return 0; + } + else { + availableBalance = readFileAndGetAvailableBalance(file, stringID); + } + + fclose(file); return availableBalance; diff --git a/src/currentCustomerAccountBalance.h b/src/currentCustomerAccountBalance.h index 76725fe..2795450 100644 --- a/src/currentCustomerAccountBalance.h +++ b/src/currentCustomerAccountBalance.h @@ -3,5 +3,8 @@ #include #include -#define MAX_LENGTH 100 -float getAvailableAccountBalance(int user_id); \ No newline at end of file +#include "_file_information.h" + +float getAvailableAccountBalance(int user_id); +float fetchBalanceFromBalanceString(char balance_String[MAX_LENGTH]); +float readFileAndGetAvailableBalance(FILE *file, char stringID[MAX_LENGTH]); \ No newline at end of file