Программа на C: Как читать из одного файла и записывать в другой? индексирование - PullRequest
0 голосов
/ 18 октября 2010

Я пытаюсь написать программу, которая будет читать существующие записи файла и затем индексировать их в другом файле. Записи хранятся в файле с именем «Players.bin» в формате CSV, который содержит каждая запись (имя пользователя, фамилия, имя, numwins, numlosses, numties, и я хочу проиндексировать их в новом файле с именем Players.idx. файл Players.idx будет содержать только последовательность пар, где username - это имя пользователя проигрывателя, а seq # - порядковый номер записи проигрывателя, сохраненной в файле проигрывателя.

Вот что я придумал до сих пор:

 fd = open("players.bin", O_WRONLY | O_CREAT |
        O_APPEND, S_IRWXU);
 if (fd > 0) {
    //Read the contents of the file (if any)
    //and then print out each record until the end of file
    while (num = read(fd, &plyr, sizeof (plyr)) != 0) {
        printf("%s, %s, %s, %d, %d, %d\n\n", plyr.user_name,
                plyr.last_name, plyr.first_name, plyr.num_wins,
                plyr.num_losses, plyr.num_ties);
    }
    close(fd);
}

fd2 = open("players.idx", O_WRONLY | O_CREAT |
        O_APPEND, S_IRWXU);
if (fd > 0) {
    while (num = read(fd, &plyr, sizeof (plyr)) != 0) {   
        num = write(NOT SURE WHAT TO PUT HERE);
        record_count++;  //I am going to use this to keep track of seq numbers
    }
    close(fd2);
}

Я просто очень запутался, как это сделать ... Спасибо

1 Ответ

3 голосов
/ 18 октября 2010

Ищите книгу / учебное пособие по открытию, чтению и записи файлов на языке C. Это довольно легко, и, когда вы знаете, как это сделать, нужно просто открыть один файл для чтения, а другой - для записи.

Извините, я не более конкретен, но для подробного объяснения мне пришлось бы написать краткий ответ, который все равно принес бы вам меньше пользы, чем чтение книги на эту тему или учебник.

После того, как вы прочно овладеете этим, взгляните на fscanf и fprintf, эти две функции помогут вам легко проанализировать и написать свой индекс.

edit : я действительно рекомендую не пропускать учебную / учебную часть.Вы неправильно открываете свои файлы, и я подозреваю, что вы тоже ошибочно читаете .bin, хотя я должен был бы проверить остальную часть вашей программы, чтобы быть уверенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...