J'essaye d'écrire un programme qui lira les enregistrements existants d'un dossier et puis les indexe dans un autre dossier. Les enregistrements sont stockés dans le fichier nommé "players.bin" qui est au format CSV chaque enregistrement contient (nom d'utilisateur, nom, prénom, numwins, numlosses, numties et je veux les indexer dans un nouveau fichier nommé "players.idx". le fichier players.idx ne contiendra qu'une séquence de paires, où nom d'utilisateur est le nom d'utilisateur du joueur et seq # est le numéro de séquence de l'enregistrement du joueur stocké dans le fichier du joueurC programme: Comment lire d'un fichier et écrire dans un autre? Indexation
Voici ce que j'ai trouvé. jusqu'à présent:
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);
}
Je suis vraiment confus sur la façon d'aller sur ce ... Merci
Avez-vous besoin de trier? Si ce n'est pas le cas, alors ne devriez-vous pas être capable de résoudre ceci avec 'fscanf()' et 'printf()'? –
Non je ne sais pas, il suffit de lire chaque séquentiellement. Comment est-ce que j'utilise fscanf() dans ce cas? –
fscanf est similaire à fprintf mais il lit à partir d'un descripteur de fichier au lieu d'en écrire un. – rerun