Ouvrir un fichier le modifier puis l exporter

adess00 Messages postés 261 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 27 septembre 2008 - 30 août 2005 à 01:40
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 - 30 août 2005 à 05:13
Salut

J ouvre un fichier en binaire comme ceci ftoc=fopen(chem,"rb");
ensuite je voudrai lire les donnees ki sont dans ce fichier par bloc compri entre 1 et 32 octets j ai vu ke y avai la fonction fread mais sa me pose un probleme pour les fichiers de taille consequente
Je peut pas tout mettre dans le buffer cpourkoi je voudrai recuperer ces blocs en definnissant l octet ou il doi commencer la lecture

Merci de votre aide !!

4 réponses

cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
30 août 2005 à 03:57
Bonjour,

Bon, il est tard donc je te met un bout de code, si t' a des soucis tu te réfere a la doc de iostream et si tu craque, j' irai plus loin dans les explikes.

//debut du stream avec stdio.....
FILE *f;
f=fopen (StringSel, "rb"); //j' ouvre le fichier stoké dans le stringArray selectionné
if (!f){wxString msg;
msg.Printf( _T("fichier non ouvert!"));
wxMessageBox(msg, _T("Infos"), wxOK | wxICON_INFORMATION, this);return;}//si ya pas de fichier, error!

fseek(f, 0, SEEK_END);
longueurf = ftell(f); //logueur du fichier en bits
fseek(f, 0, SEEK_SET);

data = (char *)malloc(longueurf); //data est alloué a un espace mémoire
fread(data, longueurf, 1, f); //read...
//ici tu modif,
fclose(f); //tue

Donc, a ce moment la tu a ton fichier dans le stream, et c'est la ou tu le modifie ou le traite avec la lib que tu souhaite.


@+

Cherche projets à réaliser en communauté en wxWIDGETS............
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
30 août 2005 à 04:23
http://tigcc.ticalc.org/doc/stdio.html


<DT>fseek
<DD>Repositions the file pointer of a stream.
<DT>fsetbufsize
<DD>Sets the buffer size of a file.
<DT>fsetpos
<DD>Positions the file pointer of a stream.</DD>


@+

Cherche projets à réaliser en communauté en wxWIDGETS............
0
adess00 Messages postés 261 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 27 septembre 2008 1
30 août 2005 à 04:27
Merci j ai bien avancé grace a toi
Je continue ...
a+
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
30 août 2005 à 05:13
regarde du coté de fread, tu peux choisir la taille d'un blok et le nombre de bloks,
tu peux par ex diviser ton fichier ou choisir une taille.

fread(void *buffer; size_t tailleBloc, size_t nombreBlocs, FILE *flot);


@+

Cherche projets à réaliser en communauté en wxWIDGETS............
0
Rejoignez-nous