Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char line[1024];
int line_count = 0;
FILE *file = fopen("1000.csv", "r");
// Declare Arrays
int LineNum[1000] = {0}; //ID for the line number
int type[1000] = {0}; //Type code to idtentify the device (0x20)
int version[1000] = {0}; //software version
char counter[1000][2]; //A rolling 8-bit, ever increasing number. Used to show how many messages are being missed by the receiver
int via[1000] = {0}; //Which receiver picked up this device’s transmission
char address[1000][8]; //The address of the transmitter
char status[1000][1]; //The status code of the device
char sensorData[1000][128]; //10-bytes of sensor data in hex (each sensor being 1 byte and 10 sensors)
if (!file) {
fprintf(stderr, "ERROR! Could not open file\n");
exit(EXIT_FAILURE);
}
while (fgets(line, sizeof line, file) != NULL) {
int lCounter = 0;
// read in first colum
if (sscanf(line, "%d", &type[lCounter]) != 1) {
fprintf(stderr, "sscanf failed.\n");
exit(EXIT_FAILURE);
}
// read in second colum
if (sscanf(line, "%*d,%d", &version[lCounter]) != 1) {
fprintf(stderr, "sscanf failed.\n");
exit(EXIT_FAILURE);
}
// read in third colum
if (sscanf(line, "%*d,%*d,%d", &counter[lCounter]) != 1) {
fprintf(stderr, "sscanf failed.\n");
exit(EXIT_FAILURE);
}
// read in fourth colum
if (sscanf(line, "%*d,%*d,%*d,%s", &via[lCounter]) != 1) {
fprintf(stderr, "sscanf failed.\n");
exit(EXIT_FAILURE);
}
// read in fifth colum
if (sscanf(line, "%*d,%*d,%*d,%*s,%d", &address[lCounter]) != 1) {
fprintf(stderr, "sscanf failed.\n");
exit(EXIT_FAILURE);
}
// read in sixth colum
if (sscanf(line, "%*d,%*d,%*d,%*s,%*d,%s", &status[lCounter]) != 1) {
fprintf(stderr, "sscanf failed.\n");
exit(EXIT_FAILURE);
}
// read in seventh colum
if (sscanf(line, "%*d,%*d,%*d,%*s,%*d,%*s,%s", &sensorData[lCounter]) != 1) {
fprintf(stderr, "sscanf failed.\n");
exit(EXIT_FAILURE);
}
printf("%d", type[lCounter]);
printf("%d", version[lCounter]);
printf("%d", counter[lCounter]);
printf("%s", via[lCounter]);
printf("%d", address[lCounter]);
printf("%s", status[lCounter]);
printf("%s", sensorData[lCounter]);
if (++line_count >= 1000)
break;
}
fclose(file);
return 0;
}