Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2980 connectés 

  FORUM HardWare.fr
  Programmation

  fichjer en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fichjer en C

n°66758
slvn
Posté le 21-10-2001 à 21:37:01  profilanswer
 

voila, j aimerais utilisé un ficheirs pour stocker des infos, et j ai donc besoin de le segmenter en petites parcelles (8octect, 10octect, 30octect ,255octect....)
certaine parcelle du fichier auront  besoin de pouvoir etre misz a jour !
 
pour remplir les parcelles, il n y a pas de pb, mais pour les mettres a jour ca foire ( avec w ou w+, le fichier est effacé // avec a a+ c est ecrit a la fin -meme si on utilise FSEEK-, et avec r+, ca ecrit au bonne endroit mais j ai l impression que ca fait deborder sur d autre parcelle ( par exemple, j utlise 8 octect pour ecrire un "double", et lorsque je le reecris, il m utilise encore 2 octect apres !!)

mood
Publicité
Posté le 21-10-2001 à 21:37:01  profilanswer
 

n°66765
barbarella
Posté le 21-10-2001 à 22:11:33  profilanswer
 

salut,
 
au pif il t'écrirais pas les caractères ascii 13 et 10 ? si oui ça devrait pouvoir se résoudre en ouvrant le fichier en binaire (voir les drapeau disponible pour la fonction), mais comme je te l'ai deja dit je ne maitrise pas vraiment ces fonctions de gestion defichier, j'utilise les autres, donc je ne suis aps sur de mon coup la.

n°66767
slvn
Posté le 21-10-2001 à 22:16:30  profilanswer
 

ok en fait, c une horrible betise.....
meme si un double prend 8 oct,  en bases 10 il peut aller jusqu a 20 chiffre >> avec fprintf, faut lui liberer 20
octect  
 
.....sinon, Barbarella, j ai essaye le truc ds time.h pour calculer le temps que mettais une page a etre generée,    
 
le seul pb c est qeu ce temps est infereiru a une sec :) donc ca fait tjrs 0

 

[edtdd]--Message édité par slvn--[/edtdd]

n°66774
barbarella
Posté le 21-10-2001 à 22:56:48  profilanswer
 

pour le temps j'ai fait une p"tite fonc
 
unsigned long diftem(struct timeb tps1,struct timeb tps2)
{
 unsigned long val;
 
 val   = (unsigned long) (tps2.time-tps1.time);
 if(tps2.millitm < tps1.millitm)
 {
  val -= 1;
  tps2.millitm += 1000;
 }
 val *= 1000;
 return(val + (unsigned long)(tps2.millitm-tps1.millitm));
}
 
pour l'utiliser tu déclare
 
struct timeb temps1,temps2;
 
 
le démarrage du décompte se fait par  
 
ftime(&temps1);
..... la tu mets un code  
ftime(&temps2);
 
tu termines par  
 
vax = diftem(temps1,temps2);
 
diftem retourne le nombre de millièrme de seconde. la précision est d'environ 5/10 milliseconde .
 
 
Il te faut aussi l'include suivant
 
Windows
#include<\sys\timeb.h>
 
Linux
#include<sys/timeb.h>

n°66776
slvn
Posté le 21-10-2001 à 23:00:29  profilanswer
 

ok merci :)
je vais tester ca :)

n°66777
slvn
Posté le 21-10-2001 à 23:10:47  profilanswer
 

ca marche impec :) thx !

n°66789
barbarella
Posté le 22-10-2001 à 00:10:17  profilanswer
 

hehe,
 
:)

n°67081
LetoII
Le dormeur doit se réveiller
Posté le 23-10-2001 à 11:12:06  profilanswer
 

Heu utilise plutôt fread et fwrite en n'oubliant pas d'ouvrir le fichier en binaire ("rwb" ). Tu passe à ces fonctions l'adresse de ce que tu veut lire ou de là où tu veuw écrire ( par exemple l'adresse de ton double) ainsi que la taille en coctet, pour celà utilise la fonction sizeof.

n°67097
slvn
Posté le 23-10-2001 à 11:46:59  profilanswer
 

elles ont quoi de mieux ces fonctions ???

n°67224
LetoII
Le dormeur doit se réveiller
Posté le 23-10-2001 à 19:05:39  profilanswer
 

Elles permettent d'acceder au fichier de façon binaire ce qui correspond plus à ce que tu veux faire je pense

mood
Publicité
Posté le 23-10-2001 à 19:05:39  profilanswer
 

n°67240
slvn
Posté le 23-10-2001 à 20:10:40  profilanswer
 

ouias c vrai, c est ce qu il m aurait fallu :)
enfin, j ai quand meme reussit (semble t il) a resoudre mon pb, donc et en plus le fichier est facilement modifiable puisuqe je l edite en tant que texte


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  fichjer en C

 

Sujets relatifs
Plus de sujets relatifs à : fichjer en C


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)