Affichage des données dans une position bien défini

Affichage des données dans une position bien défini - C - Programmation

Marsh Posté le 05-08-2007 à 13:50:52    

Est ce qu'il y a un moyen en C pour faire afficher les données dans une position bien défini dans la ligne d'un fichier :
 
Exemple :
 
Taille de la ligne dans le fichier = 265 Caractères
 
Les valeurs a afficher dans le output :
 

Code :
  1. Valeur1 = "Bonjour";
  2. Valeur2 = "Tous";
  3. Valeur3 = "le monde ";
  4. Valeur4 = " ! " ;


 
Les positions des valeurs  :
 

Code :
  1. Valeur1 : a afficher dans la ligne du fichier a la position : 50     
  2. Valeur2 : a afficher dans la ligne du fichier a la position : 100     
  3. Valeur3 : a afficher dans la ligne du fichier a la position : 150     
  4. Valeur4 : a afficher dans la ligne du fichier a la position : 200


 
 
Merci d'avance


Message édité par demo2000 le 05-08-2007 à 13:52:47
Reply

Marsh Posté le 05-08-2007 à 13:50:52   

Reply

Marsh Posté le 05-08-2007 à 19:13:41    

Le verbe "afficher" rend la question un peu difficile à comprendre, parce qu'habituellement, un affichage concerne l'écran, et non pas le disque.
 
Donc, je vais supposer que la question concerne une "écriture dans un fichier à une position donnée". Dans ce cas, la réponse est que cela se fait habituellement avec l'aide de l'instruction fseek().
 
Mais, en lisant plus attentivement la question, je m'aperçois qu'il est question d'une position à l'intérieur des lignes, et non pas à l'intéreiur du fichier de manière globale.
 
Il serait intéressant de s'avoir s'il s'agit d'insertions ou de modifications d'un fichier, si les lignes ont des longueurs fixes ou variables, ou variables dans le fichier mais constantes malgré tout, ou si le format est totalement souple.  
 
Si le fichier a des lignes de longueur fixe, la fonction fseek() pourrait convenir, avec une petite multiplication et une adition pour trouver l'offset par rapport au début du fichier. Si les lignes ont des longueurs variables, alors il faudrait d'abord rechercher le début de la ligne convernée puis faire le décalage voulu. S'il s'agit d'une insertion, il faudrait copier le contenu du fichier jusqu'au point d'insertion dans un autre fichier, puis écrire le moceau qui est rajouté, et enfin recopier tout le reste du fichier initial.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed