J’ai un fichier texte. Comment puis-je supprimer la dernière ligne du fichier uniquement à l’aide de C?
Merci! John.
ANSI C ordinaire ne fournit aucun moyen standard de réduire la taille d’un fichier – la seule façon de procéder en C standard consiste à copier tout le contenu du fichier dans un nouveau fichier, à l’exception de la partie que vous souhaitez omettre.
Vous pouvez également utiliser des fonctions spécifiques au système d’exploitation pour tronquer le fichier sur place. Par exemple, POSIX fournit la fonction ftruncate()
, qui raccourcit un fichier à une longueur donnée. Vous devez rechercher le début de la dernière ligne, puis tronquer le fichier immédiatement avant (en utilisant lseek()
pour obtenir la position).
L’alternative la plus simple, si vous avez la head
GNU, est simplement de l’utiliser:
head -n -1 < file.original > file.new
Vous avez raison avec l’approche. Sacn pour les nouvelles lignes, rappelez-vous le dernier et utilisez ensuite truncate
ou ftruncate
. voir aussi Comment tronquer un fichier en C? .
hth
Mario