@jillene

Как прочитать данные из файла с условием?

Подскажите, пожалуйста, как прочитать данные из файла в связанный список с условием. То есть прочитать только те записи, у которых поле 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;
 
}
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
Spetros
@Spetros
IT-шник
Проверяете соответствие поля структуры заданному условию при чтении из файла - всего то делов.

Только вот программа очень похожа на чужой вариант лабы, который вы хотите выдать за свою работу по своему варианту. Для начала с полями и их именованием разберитесь.
За неуча тут никто лабы делать не будет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы