Подскажите, пожалуйста, как прочитать данные из файла в связанный список с условием. То есть прочитать только те записи, у которых поле place = street.
Структура:
typedef struct S_RacingCar {
char name[12];
char place[12];
int speed;
struct S_RacingCar *next;
struct S_RacingCar *previous;
} RacingCar;
Чтение из файла
RacingCar *ReadNextFromFile(RacingCar *start, FILE *pFile) {
size_t returnValue;
if(start == NULL) {
start = malloc(sizeof(RacingCar));
returnValue = fread(start, sizeof(RacingCar), 1, pFile);
start->next = NULL;
start->previous = NULL;
} else {
RacingCar *indexCar = start;
RacingCar *newCar = malloc(sizeof(RacingCar));
while(indexCar->next != NULL) {
indexCar = indexCar->next;
}
returnValue = fread(newCar, sizeof(RacingCar), 1, pFile);
indexCar->next = newCar;
newCar->next = NULL;
newCar->previous = indexCar;
}
return start;
}
RacingCar *ReadListIn(RacingCar *start) {
FILE *pFile;
pFile = fopen("myList.bin", "rb");
if(pFile != NULL) {
CleanUp(start);
start = NULL;
fseek(pFile, 0, SEEK_END);
long fileSize = ftell(pFile);
rewind(pFile);
int numEntries = (int)(fileSize / (sizeof(RacingCar)));
printf("numEntries:%d\n",numEntries);
int loop = 0;
for(loop = 0; loop < numEntries; ++loop) {
fseek(pFile, (sizeof(RacingCar) * loop), SEEK_SET);
start = ReadNextFromFile(start, pFile);
}
} else {
printf("FILE OPEN ERROR FOR READ\n");
}
return start;
}